java - Android MediaPlayer 直播音频流 : how to know if a live streaming URL can't be streamed?

标签 java android streaming android-mediaplayer audio-streaming

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

我的问题是:如何检查直播网址是否无法直播?

无法流式传输 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/

相关文章:

html - 我如何使用 HTML5 播放 shoutcast/icecast 流?

java - 如何监控 HttpURLConnection PUT 进程

java - 在 Spring Boot Controller 中使用 GraphQL API

java - 蛇与梯子 - 在计算机转弯和掷骰子上添加延迟

java - 从 RGBA 到十六进制

c# - 从视频服务器 c# 流式传输音频

java - 如何为 sql server 配置 hibernate 配置文件

android - 从 Android 中的 SOAP 响应解析数据

android - 在具有元素的布局上捕获 OnClick 事件

linux - 录制网络流媒体广播