我有一个使用 HlsRendererBuilder
设置的 ExoPlayer
。
到目前为止,我已经将 Uri 传递给服务器上的 m3u8
流文件。它工作得很好。
现在我可以选择将视频下载到您的手机并从存储中播放。我已成功从给定链接下载该文件,并将其存储在应用程序私有(private)文件夹中。请求并批准了访问外部存储的所有权限。
在本例中,我从我下载的文件中传递一个 Uri。
Uri 如下所示:file:///storage/emulated/0/video/file.mp4
。当我开始播放时,文件从未加载。我在日志中没有收到任何异常或错误。谁能帮我建议一种方法?如果需要,我将提供代码 fragment ,但不确定哪一部分有用。
我有 ExoPlayer.Listener
来记录玩家状态。
- 当我进行流式传输时,我会得到各种状态,从 IDLE -> BUFFERING -> READY -> BUFFERING ... 依此类推,具体取决于互联网连接或媒体是否结束 ec。
- 当我播放存储的文件时,我只得到 IDLE 状态,没有任何其他情况发生。我永远黑屏,直到我
finish()
Activity 。
当我尝试从本地存储播放流文件时,我确实遇到了 FileNotFound
异常,它无法找到该文件,即流文件中列出的媒体的下一部分。我认为问题出在播放器设置上?不确定...
最佳答案
您需要对本地(视频/音频)文件使用不同的 RendererBuilder
。
ExtractorRendererBuilder
是你应该关注的事情。
关于android - ExoPlayer 无法从文件中播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39139684/