ijkplayer倍速变声的问题

网上说0.8.8版本解决变声,不需要重新编译c代码,只需要在java代码里加上如下配置:

配置成1是变声,0是不变声
但是事实上,经过我的实践发现配置成1才是不变声,0是变声。

ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1);

另外还有一点很重要的,这个配置放在哪个地方也决定了能否起作用,关于这一点我踩了好多坑:
坑一:放在mediaPlayer.setSpeed前面是不行的,
坑二:直接在new IjkMediaPlayer 后面也是不行的
第三次试验,按照github上一位大哥说的,要放在prepare之前。https://github.com/bilibili/ijkplayer/issues/3569
我的代码里 面只有 mMediaPlayer.prepareAsync()这个,于是我就在prepareAsync之前了, 代码位置如下:

/**
* 添加file文件到MediaPlayer对象并且准备播放音频
*/
private void prepareMusic(String musicUrl) {
//获取文件路径
try {
mMediaPlayer.stop();
mMediaPlayer.reset();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
//此处的两个方法需要捕获IO异常
//设置音频文件到MediaPlayer对象中
mMediaPlayer.setDataSource(musicUrl);
mMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1);
mMediaPlayer.prepareAsync();
} catch (IOException e) {
Log.d(TAG, "设置资源,准备阶段出错");
e.printStackTrace();
}
}

运行起来一播放, 不变调了,大功告成!!!

作者:冲锋的麦克

出处:https://www.cnblogs.com/zhangwenju/p/14240661.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   冲锋的麦克  阅读(332)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示