Use Audio::Opusfile
[app-musicexpo.git] / lib / App / MusicExpo.pm
index 5b66bab875a222b234086ec0636b3f3d0c5991bc..3f8bc42d80152cb8559d6770640cc87470eeb42b 100644 (file)
@@ -3,7 +3,7 @@ use 5.014000;
 use strict;
 use warnings;
 
-our $VERSION = '1.000';
+our $VERSION = '1.001_000';
 
 use Audio::FLAC::Header qw//;
 use HTML::Template::Compiled qw//;
@@ -11,6 +11,7 @@ use Memoize qw/memoize/;
 use MP3::Info qw/get_mp3tag/;
 use Ogg::Vorbis::Header::PurePerl;
 use MP4::Info qw/get_mp4tag get_mp4info/;
+use Audio::Opusfile qw//;
 
 use DB_File qw//;
 use Encode qw/encode/;
@@ -111,6 +112,26 @@ sub mp4info{
        };
 }
 
+sub opusinfo {
+       my $file = $_[0];
+       my $of = Audio::Opusfile->new_from_file($file);
+       my $tags = $of->tags;
+
+       my %data = (
+               format => 'Opus',
+               title => $tags->query('TITLE'),
+               artist => $tags->query('ARTIST'),
+               year => $tags->query('DATE'),
+               album => $tags->query('ALBUM'),
+               tracknumber => $tags->query('TRACKNUMBER'),
+               tracktotal => $tags->query('TRACKTOTAL'),
+               genre => $tags->query('GENRE'),
+               file => scalar fileparse $file
+       );
+
+       freeze \%data;
+}
+
 my %info = (
        '.flac' => \&flacinfo,
        '.mp3' => \&mp3info,
@@ -119,6 +140,7 @@ my %info = (
        '.mp4' => \&mp4info,
        '.aac' => \&mp4info,
        '.m4a' => \&mp4info,
+       '.opus' => \&opusinfo,
 );
 
 sub normalizer{
This page took 0.010014 seconds and 4 git commands to generate.