gpt4 book ai didi

android - 使用 android MediaPlayer 进行无缝播放

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:14 41 4
gpt4 key购买 nike

我正在尝试连续不断地重复播放音频,没有任何间隙。我试过了,

mediaplayer.setLooping(true);

但它给出了重复时间之间的差距。并尝试了这个,

mediaplayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()  {
@Override
public void onCompletion(MediaPlayer mp)
{
mediaplayer.start();
}
});

它也给出了一个差距。我试过不同的音频格式。但是这两种方法都不适合我。 android中还有其他方法吗?

最佳答案

当播放结束时,播放器引擎将检查是否所有轨道都已完成,一旦完成,它将检查 looping 标志。基于 looping 标志,seek0 秒。作为寻道的一部分,播放器引擎将从特定位置读取数据并开始播放。

延迟可能是由于 seek 实现以及 存储介质 引入的延迟,例如 sdcard 除了重新初始化所有跟踪并重新启动它们。因此,玩家回到起始位置时会有一定的延迟。

底层循环实现可以在此函数 AwesomePlayer::onStreamDone 中找到,如下所示:http://androidxref.com/4.2.2_r1/xref/frameworks/av/media/libstagefright/AwesomePlayer.cpp#834

编辑 1:

要实现真正的无缝播放,您还可以考虑 setNextMediaPlayer()功能。

关于android - 使用 android MediaPlayer 进行无缝播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15523788/

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