强制刷新DASH清单

时间:2019-05-28 05:10:37

标签: java exoplayer2.x

根据某些条件,我需要在下一个段下载之前开始清单更新。我试图在getNextChunk中实现更改,但清单未更新。请参考下面的代码。

我对exoplayer代码非常陌生。使用以下代码,我想在下载下一段之前强制进行清单刷新。

  

在文件DefaultDashChunkSource.java

public void getNextChunk(MediaChunk previous, long playbackPositionUs, long loadPositionUs, ChunkHolder out) {

    ..
    if (manifest.dynamic && (my condition)) {
        Log.d("getNextChunk", "update manifest now\n");
        if (playerTrackEmsgHandler != null && 
            playerTrackEmsgHandler.maybeRefreshManifestBeforeLoadingNextChunk(presentationPositionUs)) {
                return;
        }
    }
    ..
}

正如我提到的,清单文件不会与此更新。我进行了进一步调试,发现if (playerTrackEmsgHandler != null)失败了。 handle(playerTrackEmsgHandler)基本为空。

如上所述,由于我是exoplayer的新手,所以可能发生了我没有使用正确的方式实现清单更新的情况。

请建议我应使用哪些代码来强制刷新清单更新。或者可能是我可以将我的代码放在其他地方(在其他文件中)强制清单更新吗?

0 个答案:

没有答案