之前使用IjkPlayer做播放器的使用的时候,在做倍速播放的时候,发现播放的声音音调明显变高了。问题的详情参见
在解决问题之前首先对倍速的代码做一次追踪
a. Android应用中Java层面调用的代码:


public void setSpeed(floatspeed) {
_setPropertyFloat(FFP_PROP_FLOAT_PLAYBACK_RATE, speed);
}public float getSpeed(floatspeed) {return_getPropertyFloat(FFP_PROP_FLOAT_PLAYBACK_RATE, .0f);
}
倍速代码
b.找到C库里面对应的方法:_setPropertyFloat (ijkplayer_jni.c)


在使用IjkPlayer进行倍速播放时遇到音调升高问题。通过跟踪代码,发现在IjkPlayer 0.7.9版本后支持soundtouch机制。通过设置`soundtouch`选项并调整C代码,可以解决变调问题。在0.8.1版本中,只需设置`soundtouch`为1即可实现变速变调,设置为0则变速不变调。
最低0.47元/天 解锁文章
5576

被折叠的 条评论
为什么被折叠?



