我试图连续重复播放音频,没有任何间隙。我试过了,
mediaplayer.setLooping(true);
但它给出了重复时间之间的差距。并尝试了这个,
mediaplayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp)
{
mediaplayer.start();
}
});
它也给出了一个间隙。我尝试过不同的音频格式。但这两种方法都不适合我。安卓还有其他方法吗?
当播放完成时,播放器引擎将检查所有曲目是否已完成,一旦完成,它将检查是否有looping
旗帜。基于looping
旗帜,一个seek
to 0
秒。作为查找的一部分,播放器引擎将从特定位置读取数据并开始播放。
延迟可能是由于seek
实施以及由于存储介质 like sdcard
除了重新初始化所有轨道并重新启动它们之外。因此,当玩家返回到起始位置时,存在一定的延迟。
底层循环实现可以在这个函数中找到AwesomePlayer::onStreamDone
如图所示:http://androidxref.com/4.2.2_r1/xref/frameworks/av/media/libstagefright/AwesomePlayer.cpp#834
EDIT 1:
为实现真正的gapless playback
,您还可以考虑setNextMediaPlayer()特征。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)