我们在集成了ijkplayer之后,可能需要设置速率setSpeed,在设置setSpeed之后,我们发现,本来正常的声音,顿时变得花里胡哨的!
咋整!不急!
设置IjkMediaPlayer的setOption,配置的类别是IjkMediaPlayer.OPT_CATEGORY_PLAYER,值:0;
即:mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 0);
代码如下:
mIjkMediaPlayer.setSpeed(speed);
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 0);
mIjkMediaPlayer.setDataSource(url);
mIjkMediaPlayer.prepareAsync();
加上mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 0);
,你的音频音调就正常了
但是最终我发现,单纯设置这个配置还是不够的,android6.0以下的系统还是会出现变调,只能通过判断一下:
// >6.0的情况 使用 避免变速变调
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 0);
}else{
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1);
}
如果各位看到我的这篇文章,有更好的办法,希望指教!虚心请教!!!
网友评论