我对此有点困惑。搜索并找到了有关如何使用MMS协议流式传输音频和视频的主题,但我想要的是在ANDROID中从中收听(与无线电客户端一样,在这种情况下只需要音频)。
我的目标url是:mms://stream.radio.com.pt/ROLI-ENC-452
(上面的URL有效。但为了确定,我已经将其复制/粘贴到我的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-结果是:崩溃-空指针异常)
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)
解决方案:(有点)好吧,在尝试了很多代码和尝试了很多东西之后,我的简历是:
•事实:MediaPlayer无法以本机方式处理mms协议
a)支持的格式:http://developer.android.com/guide/appendix/media-formats.html
b) MMS已弃用:http://en.wikipedia.org/wiki/Microsoft_Media_Server
•一个选项:我可以选择"Vitamio"库(正如我所看到的,很多人都喜欢这个解决方案)
•我的决定:我选择了">.pls"one_answers">.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();
希望这也能为迷失在"沉默"中的人发出"嘟嘟声">;)