我的目标网址为: 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 - 结果是:崩溃 - 空指针异常)
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)
答案 0 :(得分:0)
解决方案:(排序)好的,经过大量的代码尝试后,在那里尝试了很多东西后,发布在很多论坛上,我的简历是:
•事实: 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();
希望这对于在这个“沉默”中迷失的人来说也会发出“嘟嘟”声...... ;)