视频内容编辑
6.3 视频内容编辑
6.3.1 配置编辑参数
通过 PLVideoEditSetting
可以配置视频编辑的必要参数:
-
PLVideoEditSetting setting = new PLVideoEditSetting();
-
// 视频源文件路径
-
setting.setSourceFilepath(videopath);
-
// 编辑后保存的目标文件路径
-
setting.setDestFilepath(outputpath);
-
// 编辑保存后,是否保留源文件
-
setting.setKeepOriginFile(true);
6.3.2 创建编辑对象
-
// glSurfaceView 用于渲染视频编辑后的效果
-
mShortVideoEditor = new PLShortVideoEditor(glSurfaceView, setting);
6.3.3 添加滤镜
添加内置滤镜
- 获取内置的视频滤镜列表
-
mShortVideoEditor.getBuiltinFilterList();
- 选择一个滤镜
-
mShortVideoEditor.setBuildinFilter(String filterName);
添加外置滤镜
-
mShortVideoEditor.setExternalFilter(String filterFilePath);
6.3.4 添加实时水印
PLShortVideoEditor
支持在视频上添加并动态更新水印,通过 PLWatermarkSetting
设置水印参数:
-
PLWatermarkSetting mWatermarkSetting = new PLWatermarkSetting();
-
mWatermarkSetting.setResourceId(R.drawable.qiniu_logo);
-
mWatermarkSetting.setPosition(0.01f, 0.75f);
-
mWatermarkSetting.setAlpha(128);
-
mShortVideoEditor.setWatermark(mWatermarkSetting);
通过 updatePreviewWatermark
方法更新预览视频的水印:
-
PLWatermarkSetting mPreviewWatermarkSetting = new PLWatermarkSetting();
-
mPreviewWatermarkSetting.setResourceId(R.drawable.qiniu_logo);
-
//更新了预览视频的水印位置
-
mPreviewWatermarkSetting.setPosition(0.5f, 1f);
-
mPreviewWatermarkSetting.setAlpha(128);
-
mShortVideoEditor.updatePreviewWatermark(mPreviewWatermarkSetting);
通过 updateSaveWatermark
方法更新保存视频的水印:
-
PLWatermarkSetting mSaveWatermarkSetting = new PLWatermarkSetting();
-
mSaveWatermarkSetting.setResourceId(R.drawable.qiniu_logo);
-
//更新了保存的视频的水印位置
-
mSaveWatermarkSetting.setPosition(0.5f, 1f);
-
mSaveWatermarkSetting.setAlpha(128);
-
mShortVideoEditor.updateSaveWatermark(mSaveWatermarkSetting);
6.3.5 预览效果
-
// 开始播放
-
mShortVideoEditor.startPlayback();
-
// 恢复播放
-
mShortVideoEditor.resumePlayback();
-
// 暂停播放
-
mShortVideoEditor.pausePlayback();
-
// 结束播放
-
mShortVideoEditor.stopPlayback();
-
// 跳到 msec 处播放
-
mShortVideoEditor.seekTo(int msec);
-
// 获取当前播放时间
-
mShortVideoEditor.getCurrentPosition();
6.3.6 音频混合
注意:** 以下方法只是针对单个混音文件处理,请勿与“多重音频混合”的相关方法混合使用 **
-
// 设置混音文件(本地音频文件)
-
mShortVideoEditor.setAudioMixFile(String filePath);
-
// 设置混音文件(assets 下的音频文件)
-
mShortVideoEditor.setAudioMixAsset(AssetFileDescriptor afd);
-
// 设置原音(前景)和混音文件(背景)的音量 [0-1.0f]
-
mShortVideoEditor.setAudioMixVolume(float fgVolume, float bgVolume);
-
// 设置混音的起始和结束位置
-
mShortVideoEditor.setAudioMixFileRange(long beginTime, long endTime);
-
// 设置混音是否循环
-
mShortVideoEditor.setAudioMixLooping(false);
6.3.7 保存视频
编辑后的视频效果,调用如下接口最终可以保存到本地:
-
// 设置视频的速度(默认速度为 1.0)
-
mShortVideoEditor.setSpeed(1.0);
-
// 设置需要保存的视频时间段为 0 到 6000 毫秒(默认为整个视频)
-
mShortVideoEditor.setVideoRange(0, 6000)
-
// 监听保存状态和结果
-
mShortVideoEditor.setVideoSaveListener(this);
-
// 执行保存操作
-
mShortVideoEditor.save();
6.3.8 添加文字特效
-
// 创建文字特效控件
-
PLTextView textView = new PLTextView(this);
-
// 设置文字内容,字体大小,字体颜色,透明度等一系列属性
-
textView.setText("点击输入文字");
-
textView.setTextSize(40);
-
textView.setTextColor(Color.RED);
-
textView.setAlpha(0.8f);
-
// 添加文字特效
-
mShortVideoEditor.addTextView(textView);
-
// 设置文字特效的显示时间段为 0 到 3000 毫秒
-
mShortVideoEditor.setViewTimeline(textView, 0, 3000);
-
// 删除文字特效
-
mShortVideoEditor.removeTextView(textView);
6.3.9 添加MV特效
-
// 添加MV特效
-
// 注:mvFilePath 为MV视频文件路径,maskFilePath 为蒙版文件路径
-
mShortVideoEditor.setMVEffect(mvFilePath, maskFilePath);