gpt4 book ai didi

Android 3.x/HLS 如何在流结束时开始

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:07:01 25 4
gpt4 key购买 nike

我正在使用以下代码播放 HLS 流:

mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("http://iphoned5.akamai.com.edgesuite.net/mhbarron/nasatv/nasatv_all.m3u8");
mediaPlayer.setDisplay(holder);
mediaPlayer.setOnBufferingUpdateListener(this);
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.setOnVideoSizeChangedListener(this);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepareAsync();

使用此代码,根据播放到 VLC 中的相同流,我在视频中看到的内容延迟了大约 5 分钟。

播放器开始播放 .m3u8 文件的第一个 block 。但是 hls 规范明确指出第一个 block 是较旧的,最后一个是最新的。所以播放器应该开始播放文件的最后一 block 。

我怀疑与 setDataSource 方法的参数有关,但我不知道如何做。

最佳答案

我遇到了同样的问题 - 看起来当您在 Android 上启动一个实时 HLS 提要(没有 EXT-X-ENDLIST 标签)时,核心 HLS 解析组件中存在一个无法启动的错误直播点(提要的结尾),而是从流的开头开始。

在 code.google.com 上有一个关于这个的错误 - 你可以在那里“加注星标”或投票:

http://code.google.com/p/android/issues/detail?id=37156

关于Android 3.x/HLS 如何在流结束时开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9214945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com