android web浏览器用什么来播放音频流? MediaPlayer还是其他什么?

时间:2012-11-11 01:01:42

标签: android android-mediaplayer

我在浏览器中播放来自特定网站(m.aveamuzik.com)的rtsp音频流。当我尝试使用MediaPlayer类播放相同的流时,我得到MEDIA_ERROR_UNKNOWN(使用extra = -2147483648)。该错误没有得到很好的记录,但有点谷歌搜索显示,这很可能是因为不支持的媒体格式。

我的问题是,如果MediaPlayer类不支持某种格式,内置浏览器如何播放它?另外,如何在我的代码中使用浏览器使用的相同机制,而不是MediaPlayer类?

编辑1: @Joe

我尝试了以下代码:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(streamURL));
startActivity(intent);

MX Player BSPlayer 显示为打开文件的选项,但不显示与AudioPreviewActivity相关的任何内容。实际上这是非常合理的,因为我的网址是rtsp,但AudioPreviewActivity的意图过滤器仅适用于httpfilecontent类型的URI。< / p>

2 个答案:

答案 0 :(得分:3)

<强>事实

浏览器具有额外的功能,可以从页面中剥离视频源,并在大多数情况下在本机播放器中启动它。此功能未内置于WebView中,并且本机播放器非常挑剔需要传递给它的URI才能播放它。

自从Gingerbread出现在默认的android浏览器中它就可以了。

可能的解释

您可能不会像Android浏览器那样使用MediaPlayer。发布一些代码以帮助进一步提供帮助。

进一步的帮助

  • MediaPlayer在4.0之前有很多错误(修复了很多RTSP错误)。
  • W3C描述的Web Audio API:link
  • 以下是Android支持的所有媒体格式和协议的详细列表:link
  • 测试页面:link
  • 这篇完整的博文也帮助我了解Android的媒体流:link

答案 1 :(得分:1)

如果它在浏览器中播放时看起来像the screenshot on this other question,那么它应该是音乐应用中的AudioPreview活动。

你应该能够 只需使用与the manifest中的某个IntentFilter匹配的Intent调用startActivity()即可启动它。