NAME
Template::Plugin::MP3 - Interface to the MP3::Info Module
SYNOPSIS
[% USE mp3 = MP3("Montana.mp3") %]
[% mp3.title %]
[% mp3.album %]
# perldoc MP3::Info for more ideas
DESCRIPTION
Template::Plugin::MP3
provides a simple wrapper for using MP3::Info
in object oriented mode; see MP3::Info for more details.
CONSTRUCTOR and CONFIGURATION
Template::Plugin::MP3
takes a filename as its primary argument:
[% USE MP3("Tryin_To_Grow_A_Chin.mp3") %]
Optional configuration info can also be specified in the constructor:
[% USE MP3("Camarillo_Brillo.mp3", utf8 => 1, dir => "/mp3") %]
The name of the file can also be specified as a named parameter (name
):
[% USE MP3(name => "A_Token_Of_My_Extreme.mp3", dir => "/mp3") %]
Template::Plugin::MP3
understands the following options:
- name
-
The name of the MP3 file. Note that if both a positional argument and a
name
parameter are passed the positional argument will take precedence. - dir
-
Specify a base directory name; will be prepended to the filename, if it is defined.
- utf8
-
Determines whether results should be returned in UTF-8, as handled by
MP3::Info
's use_mp3_utf8() function. See "use_mp3_utf8" in MP3::Info. Note that this requires Unicode::String.
If the constructor cannot create an instance using the filename passed, a plugin.mp3
Exception is thrown, which will need to be caught appropriately:
[% TRY %]
[% USE mp3 = MP3("Willie The Pimp.mp3") %]
[% CATCH plugin.mp3 %]
Can't find that MP3; are you sure you spelled it right?
[% CATCH %]
Unexpected exception: [% error %]
[% END %]
METHODS
Template::Plugin::MP3
provides the following, mostly intuitive, methods:
- file
-
Name of the file.
- artist
-
Name of the artist.
- album
-
Name of the album.
- bitrate
-
Bitrate at which the mp3 was encoded.
- size
-
Size of the file, in bytes.
- time, secs, mm, ss, ms
-
Length of the song, in various permutations. For example:
- time
-
03:37
- secs
-
217.0253125
- mm
-
3
- ss
-
27
- ms
-
25.3125000000125
- genre
-
Genre of the MP3.
- tagversion
-
Full name of the version of the MP3 tag, e.g. "ID3v1.1"
- version
-
Version of the MP3 tag: 1 or 2
MP3::Info
defines some other fields that I don't grok; try
[% MP3.Dump %]
to see them all.
Of course, all of the above methods don't return the advertised value if the tag being read does not contain useful information.
OTHER STUFF
Template::Plugin::MP3
provides access to the @mp3_genres and @winamp_genres arrays via the mp3_genres() and winamp_genres() class methods, or collectively through the genres() class method:
[% FOREACH genre = MP3.genres %]
* [% genre;
END %]
AUTHORS
darren chamberlain <darren@cpan.org>
Doug Gorley <douggorley@shaw.ca>
COPYRIGHT
(C) 2003 darren chamberlain
This library is free software; you may distribute it and/or modify it under the same terms as Perl itself.