Android ExoPlayer 更改选定的轨道

标签 android streaming http-live-streaming exoplayer

我正在使用 Andorid ExoPlayer 通过 http(HLS) 从 Internet 流式传输内容。当我启动播放器时它工作正常,但是当我尝试更改播放内容的质量时 -

player.setSelectedTrack(TYPE_VIDEO, 1)

例如,我收到 HTTP 403 Forbidden 错误。如果我初始化播放器并再次运行内容,就可以了。我正在使用演示项目作为源。

您知道可能导致此行为的原因是什么吗?播放初始流和更改轨道有什么区别?

有没有一种方法可以在不重新初始化整个播放器的情况下重置流式传输,因为在播放器初始化时将 url 传递给构建器?

最佳答案

我发现了问题。我传递给 ExoPlayer 的 URL 是从外部 API 返回的,并且相当长,所以我没有注意到它实际上是由“|”(http://my_url_1.m3u8|http://my_url_2.m3u8)连接的 2 个 URL。奇怪的是,如果您将此字符串传递给 ExoPlayer,它会无误地播放流。但是如果您尝试更改播放流的质量,则会出现问题。

关于Android ExoPlayer 更改选定的轨道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36406922/

相关文章:

android - 错误 : WebView has been removed from react native

android - 如何通过蓝牙从 PC 流式传输音频

http-live-streaming - 如何在所有 PC 浏览器中播放 m3u8 播放列表?

java - 扫描仪返回 null 而不是抛出异常

android - ExoPlayer 和 HLS 流媒体

nginx - 如何在远程机器上播放基于 nginx 和 rtmp 的 hls 直播

android - DDMS 不在设备上显示程序数据

java - PendingIntent.getBroadcast 不适用于通知抽屉中的默认通知单击/触摸事件 - Android Studio 2.3.3 + Java

android - 将 CImg 库添加到 android NDK(用于图像处理)

ffmpeg 在创建时流式传输多个 avi 文件