智能小视频Smartsmallvideo

    后台合成

    初始化 MediaProcessSession

    ProcessConfig.Builder builder = new ProcessConfig.Builder();
    mMediaProcessSession = new MediaProcessSession(context, builder.build());
    // 设置本地视频路径
    mMediaProcessSession.setMediaFilePath(videoPath);
    // 设置合成目标文件的地址
    mMediaProcessSession.configMp4Saver(true, mp4SavedPath);
    mMediaProcessSession.setProcessStateListener(new MediaProcessSession.ProcessStateListener() {
        @Override
        public void onProgress(int progress) {
            // show progress for user
        }
    
        @Override
        public void onFinish(boolean isSuccess, int what) {
            if (isSuccess) {
                processTint.set("合成成功!");
            } else {
                processTint.set("合成失败!错误码:" + what);
                new File(mp4SavedPath).delete();
            }
        }
    });
    // 设置预览区间,单位为微妙(us)
    // mMediaProcessSession.configMediaFileClip(long clipStartInUSec, long clipDurationInUSec)

    使用 MediaProcessSession

    // 开始
    mMediaProcessSession.start();
    // 停止
    mMediaProcessSession.stop();

    设置滤镜

    beautyFilter = new GPUImageSkinBeautyFilter();
    colorAdjustFilter = new ColorAdjustFilter(context);
    customFilter = new GPUImageFilter();
    filterList.add(beautyFilter);
    filterList.add(colorAdjustFilter);
    filterList.add(customFilter);
    mMediaProcessSession.setGPUImageFilters(filterList);

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

    设置背景音乐

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

    设置音量增益

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

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

    上一篇
    编辑预览
    下一篇
    摄像实时直播