Android 外部播放器未从文件中播放

Android 外部播放器未从文件中播放,android,exoplayer,Android,Exoplayer,我用hlsrenderbuilder设置了一个ExoPlayer。 到目前为止,我一直在向服务器上的m3u8流文件传递Uri。它工作得很好。 现在,我可以选择将视频下载到您的手机,并从存储器中播放视频。我已成功地从给定链接下载了该文件,并将其存储在app private文件夹中。已请求并批准访问外部存储的所有权限。 在本例中,我从下载的文件中传递一个Uri。 Uri如下所示:file:///storage/emulated/0/video/file.mp4。当我开始播放时,文件从未加载。我在日志

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

我有
ExoPlayer.Listener
,它记录我的播放器状态

  • 当我流媒体时,我会从空闲->缓冲->准备->缓冲开始获得各种状态。。。基于互联网连接或媒体是否终止ec
  • 当我播放存储的文件时,我只得到空闲状态,其他什么都不会发生。在我
    finish()
    
    当我尝试从本地存储播放流文件时,我确实遇到了
    FileNotFound
    异常,它找不到该文件,流文件中列出的媒体的下一部分。我想问题出在播放器的设置上?不确定…

    当您使用
    hlsrenderbuilder
    时,我认为您应该传递
    .m3u8
    播放列表文件。我是根据我使用
    DashRenderBuilder
    的经验编写的,但我相信
    HLSRenderBuilder
    的工作方式非常相似。渲染器可能正在尝试解析包含多个
    .mp4
    (或
    .ts
    )文件的播放列表,但您只提供了一个
    .mp4
    文件

    尝试下载
    .m3u8
    文件中列出的所有文件,包括播放列表文件,然后像
    file:///storage/emulated/0/video/movie.m3u8
    到您的渲染器


    希望有帮助

    对于本地(视频/音频)文件,需要使用不同的
    渲染器生成器


    是你应该看的东西。

    是的!非常感谢。我已经弄明白了。做了同样的,作为答案。是的,事实上你是对的。我知道
    .m3u8
    文件是一个播放列表文件。我知道我必须设置不同的渲染器才能渲染
    .mp4
    文件。我给+1,这是一个很好的观点。