Android MediaPlayer实时音频流:如何知道实时流媒体网址是否无法流式传输?

时间:2014-03-26 15:11:34

标签: java android streaming android-mediaplayer audio-streaming

我有一个应用程序来传输实时音频流。

我的问题是:如何检查实时流式网址是否无法流式传输?

为什么网址无法流式传输有以下几个原因:

  • 完全错误的网址指向什么
  • url,它不指向音频流(例如,对于图像)
  • 相对于无法流式传输的音频流的网址,因为音频格式与Android MediaPlayer不兼容
  • 可能有很多其他原因......

如果可能,我想检查Android MediaPlayer是否可以在不启动缓冲/准备过程的情况下流式传输网址。

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:0)

检查给定远程URL是否处于活动状态的最快方法是执行HTTP请求并检查响应头。

但是,这只会告诉您URL是否存在,但如果它是有效的可流传输资源则不会。

您的问题询问是否可以在不启动缓冲过程的情况下检查后者。据我所知,没有办法。

最好的办法是异步(通过prepareAsync())准备MediaPlayer对象并注册MediaPlayer.OnErrorListener。如果您不想在预缓冲完成后播放媒体,请不要注册setOnPreparedListener()。但是,请注意,如果流URL有效,则不会调用OnErrorListener。

对于简单检查,最好的办法是注册OnErrorListener和OnPreparedListener,并根据首先调用哪一个来调用自己的回调。