1 倍数播放原理
倍速播放的原理主要包括视频帧率和音频重采样两个方面。
视频
倍速播放视频时,主要是通过改变视频的播放帧率来实现。例如,如果原始视频的帧率为30帧每秒(fps),在2倍速播放时,帧率提升到60fps,这意味着每秒钟播放的帧数翻倍,从而加快了视频的播放速度。这种帧率的调整要求播放器有足够的解码能力来处理更高的帧率。
音频
音频倍速播放则是通过音频重采样来实现。重采样的原理是根据播放速度调整采样率。例如,原始采样率为44100Hz的音频,在2倍速播放时,解码出来的音频数据会均匀地丢弃一半,使得每秒钟的采样点数减少,从而实现加速播放。具体的重采样计算公式为:新的采样率 = 原始采样率 * 100 / 播放速度。
那针对现有原生Mediaplayer播放器和ijkplayer,怎么设置倍数播放呢?
2 IjkPlayer倍数设置
ijk版本不同,对于倍数播放效果不同。
2.1 版本支持情况
设置方式rate,取值范围为0.5~2:
mIjkMediaPlayer.setSpeed(rate);
0.7.9版本开始支持变调,需要设置:
ijkMediaPlayer.s