我有一个应用程序可以流式传输实时音频流。
我的问题是:如何检查直播网址是否无法直播?
无法流式传输 url 的原因有多种:
- 完全错误的 url 指向任何内容
- 不指向音频流的 url(例如指向图像)
- 由于音频格式与 android MediaPlayer 不兼容而无法播放的音频流的 url
- 可能还有许多其他原因......
如果可能,我想检查 Android MediaPlayer 是否可以在不启动缓冲/准备过程的情况下流式传输 url。
我该怎么做?
谢谢!
最佳答案
检查给定远程 URL 是否有效的最快方法是执行 HTTP 请求并检查响应 header 。
但是,这只会告诉您 URL 是否有效,而不会告诉您它是否是有效的流媒体资源。
您的问题询问是否可以在不启动缓冲过程的情况下检查后者。据我所知,没有办法。
最好的办法是异步准备一个 MediaPlayer 对象(通过 prepareAsync() )并注册一个 MediaPlayer.OnErrorListener .如果您不想在完成预缓冲后播放媒体,请不要注册 setOnPreparedListener()。但是,请注意,如果流 URL 有效,则不会调用 OnErrorListener。
简单检查的最佳选择是同时注册 OnErrorListener 和 OnPreparedListener 并调用您自己的回调,具体取决于先调用两者中的哪一个。
关于java - Android MediaPlayer 直播音频流 : how to know if a live streaming URL can't be streamed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22665246/