android - ExoPlayer 无法从文件中播放

标签 android exoplayer

我有一个使用 HlsRendererBuilder 设置的 ExoPlayer。 到目前为止,我已经将 Uri 传递给服务器上的 m3u8 流文件。它工作得很好。 现在我可以选择将视频下载到您的手机并从存储中播放。我已成功从给定链接下载该文件,并将其存储在应用程序私有(private)文件夹中。请求并批准了访问外部存储的所有权限。 在本例中,我从我下载的文件中传递一个 Uri。 Uri 如下所示:file:///storage/emulated/0/video/file.mp4。当我开始播放时,文件从未加载。我在日志中没有收到任何异常或错误。谁能帮我建议一种方法?如果需要,我将提供代码 fragment ,但不确定哪一部分有用。

我有 ExoPlayer.Listener 来记录玩家状态。

  1. 当我进行流式传输时,我会得到各种状态,从 IDLE -> BUFFERING -> READY -> BUFFERING ... 依此类推,具体取决于互联网连接或媒体是否结束 ec。
  2. 当我播放存储的文件时,我只得到 IDLE 状态,没有任何其他情况发生。我永远黑屏,直到我 finish() Activity 。

当我尝试从本地存储播放流文件时,我确实遇到了 FileNotFound 异常,它无法找到该文件,即流文件中列出的媒体的下一部分。我认为问题出在播放器设置上?不确定...

最佳答案

您需要对本地(视频/音频)文件使用不同的 RendererBuilder

ExtractorRendererBuilder是你应该关注的事情。

关于android - ExoPlayer 无法从文件中播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39139684/

相关文章:

android - 验证错误: Error #1079: Native methods are not allowed in loaded code

exoplayer - 为什么 Exoplayer 在带宽变化时不切换 HLS 轨道

java - 如何在 Android 的 ExoPlayer 中播放 Youtube 视频?

android - Exoplayer Mediaplayer Android延迟应用PlaybackParameters

android - 如何管理 Azure 通知中心中的数千个应用程序用户,并且收件人每天都在变化?

android - 获取操作 GET_CONTENT 的文件路径

java - onclick 按钮出现错误(cardview、recyclerview)

android - 通过 Retrofit 2 发送 SOAP-XML 请求和获取 SOAP-XML 响应

android - 将 HLS 与 ExoPlayer 一起使用时如何实现 seekTo()

搜索完成时的Android exoplayer回调