【问题标题】:MMS Stream (Radio Client - Audio Only)彩信流(无线电客户端 - 仅音频)
【发布时间】:2014-01-10 21:22:28
【问题描述】:

我对此有点困惑。 搜索并找到有关如何使用 MMS 协议流式传输音频和视频的主题,但我想要的是在 ANDROID 中收听它(在这种情况下,就像无线电客户端一样,只需要音频)。

我的目标网址是这样的: mms://stream.radio.com.pt/ROLI-ENC-452
(上面的网址有效。但只是为了确定,我已经将它复制/粘贴到我的 Firefox 浏览器,然后它会要求播放器,“Widows Media Player”或“VLC”,并且在两者中都像魅力一样播放。你也可以试试。)

1)我试过这段代码:(使用 MediaPlayer - 结果是:静默,没有任何反应)

String target = "mms://stream.radio.com.pt/ROLI-ENC-452";
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(target);
mp.prepare();
mp.start();

2) 而这段代码:(使用 MediaPlayer - 结果是: Crash - Null Pointer Exception)

Uri target = Uri.parse("mms://stream.radio.com.pt/ROLI-ENC-452");
MediaPlayer.create(context, target).start();

注意:所有活动和互联网权限都在“AndroidManifest.xml”中注册。

问题:我是否走在正确的道路上,将 MediaPlayer 用于 MMS 协议?...如果是这样,我做错了什么? (我知道 MediaPlayer 处理 HTTP 和 RTSP 协议,不确定 MMS)

【问题讨论】:

标签: audio video stream streaming mms


【解决方案1】:

解决方案:(有点)好吧,在尝试了很多代码并尝试了那里的一堆东西之后,在许多论坛上发布了,我的简历是:

事实: MediaPlayer 无法原生处理 mms 协议。
a) 支持的格式:http://developer.android.com/guide/appendix/media-formats.html
b) MMS 已弃用:http://en.wikipedia.org/wiki/Microsoft_Media_Server

一个选项:我可以选择“Vitamio”库。 (正如我所见,很多人都喜欢这个解决方案)

我的决定:我选择“.pls”和“.acc”文件,因为它们与 MediaPlayer 兼容。现代音频压缩和编码方案,具有更好的音频质量。并且(对我来说最重要的)代码最终与以下示例中的代码一样简单:

// Both urls for audio stream (radio):
// Try this as an "PLS" example: http://tsf.pt/emdirecto.pls
// Try this as an "AAC" example: http://euronews-02.ice.infomaniak.ch/euronews-02.aac   

VideoView vv = (VideoView) findViewById(R.id.myVideoView); // In a layout xml file
MediaController mc = new MediaController(context){};

Uri path = Uri.parse("http://euronews-02.ice.infomaniak.ch/euronews-02.aac");
vv.setMediaController(mc);
vv.setVideoURI(path);
vv.requestFocus();
vv.start();

希望这也能为迷失在这种“沉默”中的人发出“哔”声…… ;)

【讨论】: