aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_mp3.c
diff options
context:
space:
mode:
authordvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2009-12-04 20:19:53 +0000
committerdvossel <dvossel@f38db490-d61c-443f-a65b-d21fe96a405b>2009-12-04 20:19:53 +0000
commit1a3af8a472336e97a2388b67f7645bc2f84f85b7 (patch)
tree94ece87c646ad76e9a31034e3abe759f26cc6c97 /apps/app_mp3.c
parentad2801af93ae236ed4db426ebed9d36756ad773c (diff)
.m3u support for Mp3Player app
(closes issue #14823) Reported by: macli Patches: app_mp3.diff1 uploaded by macli (license ) Tested by: macli, dvossel git-svn-id: http://svn.digium.com/svn/asterisk/trunk@233234 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_mp3.c')
-rw-r--r--apps/app_mp3.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/apps/app_mp3.c b/apps/app_mp3.c
index b177fb027..b2163070a 100644
--- a/apps/app_mp3.c
+++ b/apps/app_mp3.c
@@ -21,6 +21,9 @@
* \brief Silly application to play an MP3 file -- uses mpg123
*
* \author Mark Spencer <markster@digium.com>
+ *
+ * \note Add feature to play local M3U playlist file
+ * Vincent Li <mchun.li@gmail.com>
*
* \ingroup applications
*/
@@ -47,7 +50,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
/*** DOCUMENTATION
<application name="MP3Player" language="en_US">
<synopsis>
- Play an MP3 file or stream.
+ Play an MP3 file or M3U playlist file or stream.
</synopsis>
<syntax>
<parameter name="Location" required="true">
@@ -56,7 +59,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
</parameter>
</syntax>
<description>
- <para>Executes mpg123 to play the given location, which typically would be a filename or a URL.
+ <para>Executes mpg123 to play the given location, which typically would be a mp3 filename
+ or m3u playlist filename or a URL. Please read http://en.wikipedia.org/wiki/M3U
+ to see how M3U playlist file format is like, Example usage would be
+ exten => 1234,1,MP3Player(/var/lib/asterisk/playlist.m3u)
User can exit by pressing any key on the dialpad, or by hanging up.</para>
</description>
</application>
@@ -89,6 +95,14 @@ static int mp3play(const char *filename, int fd)
/* As a last-ditch effort, try to use PATH */
execlp("mpg123", "mpg123", "-q", "-s", "-b", "1024", "-f", "8192", "--mono", "-r", "8000", filename, (char *)NULL);
}
+ else if (strstr(filename, ".m3u")) {
+ /* Most commonly installed in /usr/local/bin */
+ execl(LOCAL_MPG_123, "mpg123", "-q", "-z", "-s", "-b", "1024", "-f", "8192", "--mono", "-r", "8000", "-@", filename, (char *)NULL);
+ /* But many places has it in /usr/bin */
+ execl(MPG_123, "mpg123", "-q", "-z", "-s", "-b", "1024","-f", "8192", "--mono", "-r", "8000", "-@", filename, (char *)NULL);
+ /* As a last-ditch effort, try to use PATH */
+ execlp("mpg123", "mpg123", "-q", "-z", "-s", "-b", "1024", "-f", "8192", "--mono", "-r", "8000", "-@", filename, (char *)NULL);
+ }
else {
/* Most commonly installed in /usr/local/bin */
execl(MPG_123, "mpg123", "-q", "-s", "-f", "8192", "--mono", "-r", "8000", filename, (char *)NULL);