我有来自在浏览器中播放的特定站点(m.aveamuzik.com)的rtsp音频流.当我尝试使用MediaPlayer类播放相同的流时,我得到MEDIA_ERROR_UNKNOWN(额外= -2147483648).该错误没有很好的记录,但一点点谷歌搜索表明,这很可能是因为不支持的媒体格式.
我的问题是,如果MediaPlayer类不支持某种格式,内置浏览器如何播放它?另外,如何在我的代码中使用浏览器使用的相同机制,而不是MediaPlayer类?
编辑1:@Joe
我尝试了以下代码:
Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(streamURL));
startActivity(intent);
MX Player和BSPlayer显示为打开文件的选项,但与AudioPreviewActivity无关.实际上这是非常合理的,因为我的URL是rtsp,但AudioPreviewActivity的intent过滤器仅适用于http,文件和内容类型的URI.
最佳答案
事实
原文链接:https://www.f2er.com/android/430720.html浏览器具有额外的功能,可以从页面中剥离视频源,并在大多数情况下在本机播放器中启动它.此功能未内置于WebView中,并且本机播放器非常挑剔需要将其作为URI传递到其中以便能够播放它.
它自从Gingerbread在默认的android浏览器中起作用.
可能的解释
您可能不像Android浏览器那样使用MediaPlayer.发布一些代码以帮助进一步提供帮助.
进一步帮助
> MediaPlayer在4.0之前有很多错误(修复了很多RTSP错误).
> W3C:link描述的Web Audio API
>以下是Android支持的所有媒体格式和协议的详细列表:link
>测试页面:link
>这篇完整的博客文章也帮助我了解Android的媒体流:link