mpg123本身是支持URL MP3的,可惜它只支持http协议的url mp3.
好在mpg123还支持从standard input中读取MPEG data,这样以来我们可以通过组合curl与mpg123来实现播放https协议的URL MP3.
#!/bin/bash
# play https mp3 using mpg123
function https_url_p ()
{
local url=$1
echo $url |egrep "^https://" >/dev/null
}
uri=$1
if https_url_p $uri;then
curl -L $uri | mpg123 -
else
mpg123 $curi
fi
原理很简单:
先判断一个文件是否以 https:// 开头,若是的话,则认为是https url mpg3,那么通过curl将其内容取出来,通过管道发给mpg123来播放.
事实上,curl支持超多的网络协议,你可以很容易的扩展到file,ftp,ftps,rtmp等各种网络协议上.
不过要一个一个判断网络协议的种类就太麻烦了,可以简化成这样:
mpg123 $1 || curl -L $1 |mpg123 -
先尝试用mpg123直接播放,失败的话再听过curl获取MPEG DATA交给mpg123来播放.
本文介绍了一种利用mpg123和curl结合的方式播放HTTPS协议下的MP3文件的方法。通过简单的shell脚本实现了对不同网络协议的支持,并提供了具体的实现步骤。
1407

被折叠的 条评论
为什么被折叠?



