我有一个适用于MPEG-TS文件的Android TV应用程序(在Amlogic盒子上)。
我们有1小时长度的文件,比如文件13.mpeg,14.mpeg ... 24.mpeg等(每小时一个文件)。
当倒回当前小时的文件时遇到问题,就像现在12:50一样,文件12.mpeg正在不断更新新数据,但如果我从12:50倒回到12:48,播放器只会到12:50然后它会认为文件已经完成并转到OnCompletionListener
,而实际文件已经更新到12:52。因此,播放器不会检测更新的数据,只检测到我请求的点之前记录的数据。
我怀疑Content-Length HTTP标头,但它正在针对每个响应进行更新,因此技术人员应该了解新内容。它要么忽略了信息,要么根据第一反应或其他我无法理解的东西工作。
以下是我用于简单回放的代码段:
MainActivity.mediaPlayer.reset();
MainActivity.mediaPlayer.setDataSource(newPlayUrl);
MainActivity.mediaPlayer.prepareAsync();
MainActivity.mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
MainActivity.mediaPlayer.start();
MainActivity.mediaPlayer.seekTo(ts * 1000);
paused = false;
}
});
我的问题是:有没有办法告诉玩家在后台请求更新的文件,这样倒带才能正常工作?