编辑预览

初始化预览 MediaPreviewSession

mMediaPreviewSession = new MediaPreviewSession(context);
// 设置视频预览的速度,支持1到9倍的倍速预览
mMediaPreviewSession.setPlaybackRate(playbackRate)
// 设置本地视频路径
mMediaPreviewSession.setMediaFilePath(videoPath);
// 设置解码音频和视频
mMediaPreviewSession.setVideoAudioEnabled(true, true);
// 循环播放
mMediaPreviewSession.setLooping(true);
// 设置SurfaceHolder
mMediaPreviewSession.setSurfaceHolder(surfaceView.getHolder());
// 设置监听回调
mMediaPreviewSession.setPreviewStateListener(mPreviewStateListener);
// 设置预览区间,单位为微妙(us)
// mMediaPreviewSession.configMediaFileClip(long clipStartInUSec, long clipDurationInUSec)

使用MediaPreviewSession

// 开始
mMediaPreviewSession.start();
// 暂停
mMediaPreviewSession.pause();
// 恢复
mMediaPreviewSession.resume();
// 停止
mMediaPreviewSession.stop();
// 释放资源
mMediaPreviewSession.release();

设置滤镜

beautyFilter = new GPUImageSoftenBeautyFilter();
colorAdjustFilter = new ColorAdjustFilter(context);
customFilter = new GPUImageFilter();
filterList.add(beautyFilter);
filterList.add(colorAdjustFilter);
filterList.add(customFilter);
mMediaPreviewSession.setGPUImageFilters(filterList);

具体滤镜参数、取值范围的使用方法详见选择滤镜参数

设置背景音乐

// 设置背景音乐
mMediaPreviewSession.configBackgroundMusic(boolean enableBGM, String bgmPath, boolean isLooping)
// 设置背景乐区间,单位为微妙(us)
mMediaPreviewSession.configBackgroundMusicClip(long clipStartInUSec, long clipDurationInUSec)

设置音量增益

// 设置主视频的音量增益,取值[0f, 1f]
mMediaPreviewSession.setMasterTrackGain(float gain);
// 设置背景音音量增益,取值[0f, 1f]
mMediaPreviewSession.setBGMTrackGain(float gain);

更多详情,参见demo中的ConfigProcessViewModel类。