如何解决ExoPlayer 正在播放当前正在录制的媒体文件
让我重新提出我的问题,我匆忙写的。
现状: 我已经设置了一个数字视频录像机来记录通过 DVB-C 提供的广播。它在树莓派 3B 上运行,使用 TVHeadend 和 jetty/cling 来提供 UPnP 和其他访问媒体文件的可能性。为了观看录音,我使用 IJKPlayer 编写了一个 Android 播放器应用程序,该应用程序可在智能手机、FireTV 和 AndroidTV 上运行。 播放当前正在录制的媒体文件时的一个麻烦是,IJKPlayer 不支持时移。意思是,当我开始播放当前正在录制的文件时,我只能观看播放器当时已知的长度。之后录制的任何内容都无法播放。我需要退出播放器活动并重新启动它。我已经通过使用自定义 servlet 实现“模拟”完整的重新编码解决了该问题。由于录制的完整长度已经知道,我可以使用 ffmpeg 来完成。
未来情况: 我打算从 IJKPlayer 转移到 ExoPlayer,因为它支持硬件播放并且在播放 h.264 媒体时速度要快得多。我当然可以使用与上述相同的解决方案,但据我所知,ExoPlayer 可以支持当前使用 Timeline 类录制的媒体文件。但是,我似乎既没有找到有用的文档,也没有找到任何好的示例。因此,如果您对时间轴对象有任何帮助,我将不胜感激。
问候 哈利
解决方法
看起来我的方法行不通。至少,我没有找到解决方案。问题是,服务器在播放器开始时返回流大小。我没有找到更新“常规”文件的媒体持续时间的方法。
但是,我可以通过更改服务器端来解决问题。我没有访问常规文件,而是使用 ffmpeg 将文件实时转换为 m3u8。然后我将 m3u8 URI 扔到播放器上,它会更新流的持续时间(在播放时),而无需在客户端创建任何额外的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。