Skip to content

record_speed

zanxiaofei edited this page Dec 5, 2017 · 3 revisions

录制变速功能

短视频SDK提供录制变速功能

1. 功能说明

  • 有效范围:0.5~2.0 (>1.0时为加速录制,<1.0时为减速录制)
  • 变速后录制的视频时长为:原始录制时长*(1.0/speed),例如变速2.0后,原始录制10s的视频变速录制后变为5s

1.1 添加BGM

可在变速录制时添加背景音乐,为了能跟上变速的速度,需要将背景音乐的预览做一个变速

  • 变速录制时,背景音乐的预览速度为(1.0/speed), 例如2.0加速录制时,背景音乐的播放速度为0.5
  • 录制后,背景音乐为正常速度播放

建议添加背景音乐时,将原始音频mute,否则外放的背景音乐从mic采集影响最终录制视频的效果

2. 接口说明

录制开始前调用KSYRecordKitsetRecordSpeed(float)接口可调整录制时的速度

该接口不能立即生效,只有调用了startRecord才会生效,在录制过程中调用,只能在下一次录制时生效

    /**
     * set speed for record <br/>
     * default value:1.0 <br/>
     * valid value:0.0~2.0 <br/>
     * effect on the next  {@link #startRecord(String)} call.
    public void setRecordSpeed(float recordSpeed)
    /**
     * @return speed value 当前设置的倍速
     */
    public float getRecordSpeed()

2. 示例代码

   //设置速度
    mKSYRecordKit.setRecordSpeed(2.0f); 

    /**
     * 变速录制时建议将原声静音,否则在添加背景音乐后效果不太好
     */
    private void updateSpeedVolume() {
        if (mKSYRecordKit.getRecordSpeed() != 1.0f && mHasBgm) {
            mKSYRecordKit.setVoiceVolume(0.f);
            mMicAudioVolumeSeekBar.setProgress((int) (mKSYRecordKit.getVoiceVolume() * 100));
            mMicAudioVolumeSeekBar.setEnabled(false);
        } else {
            if (mKSYRecordKit.getVoiceVolume() == 0.f) {
                mKSYRecordKit.setVoiceVolume(1.0f);
                mMicAudioVolumeSeekBar.setProgress((int) (mKSYRecordKit.getVoiceVolume() * 100));
                mMicAudioVolumeSeekBar.setEnabled(true);
            }
        }
    }
Clone this wiki locally