当前位置 : 主页 > 手机开发 > android >

使用Android MediaPlayer进行无缝播放

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在尝试连续播放音频,没有任何差距.我试过了, mediaplayer.setLooping(true); 但它在重复时间之间产生了差距.试过这个, mediaplayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override
我正在尝试连续播放音频,没有任何差距.我试过了,

mediaplayer.setLooping(true);

但它在重复时间之间产生了差距.试过这个,

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

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

当播放结束时,播放器引擎将检查所有曲目是否完成,一旦完成,它将检查循环标志.基于循环标志,寻求0秒.作为搜索的一部分,播放器引擎将从特定位置读取数据并开始播放.

延迟可能是由于搜索实现以及存储介质(如SD卡)引入的延迟,除了重新初始化所有轨道并重新启动它们之外.因此,当玩家恢复到起始位置时,存在明确的延迟.

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

编辑1:

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

网友评论