Changeset 29 in mp3-find for trunk/lib/MP3/Find/Util.pm
- Timestamp:
- 05/21/06 05:17:23 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/MP3/Find/Util.pm
r1 r29 7 7 use vars qw(@EXPORT_OK); 8 8 9 @EXPORT_OK = qw(build_query); 9 @EXPORT_OK = qw(build_query get_mp3_metadata); 10 11 use Carp; 12 use MP3::Info; 13 14 eval { require MP3::Tag }; 15 my $CAN_USE_ID3V2 = $@ ? 0 : 1; 10 16 11 17 sub build_query { … … 38 44 } 39 45 46 sub get_mp3_metadata { 47 my $args = shift; 48 49 my $filename = $args->{filename} or croak "get_mp3_metadata needs a 'filename' argument"; 50 51 my $mp3 = { 52 FILENAME => $filename, 53 %{ get_mp3tag($filename) || {} }, 54 %{ get_mp3info($filename) || {} }, 55 }; 56 57 if ($CAN_USE_ID3V2 and $args->{use_id3v2}) { 58 # add ID3v2 tag info, if present 59 my $mp3_tags = MP3::Tag->new($filename); 60 unless (defined $mp3_tags) { 61 warn "Can't get MP3::Tag object for $filename\n"; 62 } else { 63 $mp3_tags->get_tags; 64 if (my $id3v2 = $mp3_tags->{ID3v2}) { 65 for my $frame_id (keys %{ $id3v2->get_frame_ids }) { 66 my ($info) = $id3v2->get_frame($frame_id); 67 if (ref $info eq 'HASH') { 68 # use the "Text" value as the value for this frame, if present 69 $mp3->{$frame_id} = $info->{Text} if exists $info->{Text}; 70 } else { 71 $mp3->{$frame_id} = $info; 72 } 73 } 74 } 75 } 76 } 77 78 return $mp3; 79 } 80 40 81 # module return 41 82 1;
Note: See TracChangeset
for help on using the changeset viewer.