功能介绍

短视频SDK提供基础视频录制,同时支持添加配乐,变速录制,人脸贴纸等录制效果,录制核心类AliyunIRecorder。

版本差异

版本 功能描述
专业版 支持所有功能。
标准版 支持基础录制和音乐功能,不支持人脸识别。
基础版 支持基础录制,不支持音乐和人脸识别。

视频录制

录制流程 流程说明
参数配置 该模块用来创建/销毁录制接口。
回调设置 该模块用于回调设置。
开启预览 该模块用于创建开始预览和结束预览
录制控制/管理 该模块用于配置录制相关信息。
设置特效 该模块用于配置录制美颜、滤镜等信息。
开始录制 该模块用于创建开始录制片段、取消录制片段、停止录制片段。
完成录制 该模块用于创建结束录制相关信息。
说明 录制功能需要获取摄像头和麦克风权限,否则无法录制。

参数配置

  • 初始化
    配置项 配置实例
    创建录制接口
    AliyunIRecorder recorder = AliyunRecorderCreator.getRecorderInstance(Context context);//参数context为当前页面的上下文
    销毁录制接口
    AliyunIRecorder#destroy();
  • 输出设置
    配置项 配置实例
    设置录制视频输出参数
    AliyunIRecorder#setMediaInfo(MediaInfo mediaInfo);//相关参数描述请参考MediaInfo的接口文档
    设置输出路径
    AliyunIRecorder#setOutputPath(String path);
    设置录制视频质量
    AliyunIRecorder#setVideoQuality(VideoQuality quality);
    设置录制视频的码率
    AliyunIRecorder#setVideoBitrate(int bitrate);//单位:kbps
    设置输出视频的GOP大小
    AliyunIRecorder#setGop(int gop);//单位:帧数

回调设置

配置项 配置实例
设置录制回调
AliyunIRecorder#setRecordCallBack(RecordCallback callBack);
设置视频帧采集回调
AliyunIRecorder#setOnFrameCallback(OnFrameCallBack callback);
设置音频采集数据的回调
AliyunIRecorder#setOnAudioCallback(OnAudioCallBack callback);

开启预览

配置项 配置实例
开始预览
AliyunIRecorder#startPreview();
结束预览
AliyunIRecorder#stopPreview();

录制控制/管理

  • 录制控制
    配置项 配置实例
    获取摄像头数量
    AliyunIRecorder#getCameraCount();
    设置摄像头类型
    AliyunIRecorder#setCamera(CameraType cameraType);
    设置摄像头预览参数(闪光灯、对焦模式、zoom、曝光度)
    AliyunIRecorder#setCameraParam(CameraParam
    cameraParam);//也可以单独设置,参考下面的接口
    切换摄像头
    AliyunIRecorder#switchCamera();
    设置闪光灯模式
    AliyunIRecorder#setLight(FlashType flashType);
    设置Zoom
    AliyunIRecorder#setZoom(float rate);
    设置曝光度
    AliyunIRecorder#setExposureCompensationRatio(float value);
    设置对焦模式
    AliyunIRecorder#setFocusMode(int mode);
    手动对焦
    AliyunIRecorder#setFocus(float xRatio, float yRatio);
    设置录制预览窗口View(SurfaceView)
    AliyunIRecorder#setDisplayView(SurfaceView displayView);
    设置传感器角度值(非常重要,建议仔细阅读接口文档)
    AliyunIRecorder#setRotation(int rotation);
    设置人脸角度的检测值(非常重要,建议仔细阅读接口文档)
    AliyunIRecorder#setFaceDetectRotation(int rotation);
    设置录制视频的角度(非常重要,建议仔细阅读接口文档)
    AliyunIRecorder#setRecordRotation(int rotation);
    设置静音录制
    AliyunIRecorder#setMute(boolean isMute);
  • 录制管理
    配置项 配置实例
    获取片段管理器
    AliyunIRecorder#getClipManager();
    设置最大录制时长(总录制时长,不是单个片段的最大时长)
    AliyunIClipManager#setMaxDuration(int maxDurationMs);
    设置最小录制时长(总录制时长,不是单个片段的时长)
    AliyunIClipManager#setMinDuration(int minDurationMs);
    获取片段总时长
    AliyunIClipManager#getDuration();
    获取总的片段数量
    AliyunIClipManager#getPartCount();
    删除最后一段片段
    AliyunIClipManager#deletePart();
    删除指定的片段
    AliyunIClipManager#deletePart(int index);
    删除所有片段
    AliyunIClipManager#deleteAllPart();
    获取片段路径列表
    AliyunIClipManager#getVideoPathList();

设置特效

  • 美颜
    配置项 配置实例
    设置美颜程度
    AliyunIRecorder#setBeautyLevel(int level);
    设置美颜开关
    AliyunIRecorder#setBeautyStatus(boolean on);
  • 滤镜
    配置项 配置实例
    设置普通滤镜效果
    AliyunIRecorder#applyFilter(EffectFilter effectFilter);//参数路径设置为null表示移除滤镜效果
    移除滤镜效果
    AliyunIRecorder#applyFilter(new EffectFilter(null));
  • 动效滤镜
    配置x项 配置实例
    设置动效滤镜(灵魂出窍等)
    AliyunIRecorder#applyAnimationFilter(EffectFilter effectFilter);
    移除动效滤镜
    AliyunIRecorder#removeAnimationFilter(EffectFilter effctFilter);
  • 人脸识别(仅专业版支持)
    配置项 配置实例
    设置人脸坐标数据(接入第三方人脸识别时会用到)
    AliyunIRecorder#setFace(float[][] faces);
    设置是否需要使用SDK内置的人脸识别
    AliyunIRecorder#needFaceTrackInternal(boolean need);
    为SDK内置的人脸识别指定模型文件
    AliyunIRecorder#setFaceTrackInternalModelPath(String path);
    设置SDK内置人脸识别支持的最大人脸个数
    AliyunIRecorder#setFaceTrackInternalMaxFaceCount(int maxFaceCount);
  • 动图(仅专业版支持)
    配置项 配置实例
    添加人脸动图
    AliyunIRecorder#addPaster(EffectPaster effectPaster);
    添加普通动图
    AliyunIRecorder#addPaster(EffectPaster effectPaster,float sx,float sy,float sw,float sh,float rotation,boolean flip);
    移除动图
    AliyunIRecorder#removePaster(EffectPaster effectPaster);
  • 静态贴纸/水印
    配置项 配置实例
    添加静态水印/静态贴纸
    AliyunIRecorder#addImage(EffectImage effctImage);
    移除静态水印/静态贴纸
    AliyunIRecorder#removeImage(EffectImage effctImage);
  • 背景音乐(仅专业版、标准版支持)
    配置项 配置实例
    设置背景音乐
    AliyunIRecorder#setMusic(String path,long startTime,long duration);
    移除背景音乐
    AliyunIRecorder#setMusic(null, 0, 0);
  • 变速(仅专业版、标准版支持)
    配置项 配置实例
    设置录制变速
    AliyunIRecorder#setRate(float rate);
  • 自定义渲染
    配置项 配置实例
    设置自定义渲染的回调
    AliyunIRecorder#setOnTextureIdCallback(OnTextureIdCallBack callback);
  • 拍照
    配置项 配置实例
    带特效拍照
    AliyunIRecorder#takePhoto(boolean needBitmap);
    系统拍照(不带特效)
    AliyunIRecorder#takePicture(boolean needBitmap);
    设定系统拍照的照片大小(只支持系统拍照,特效拍照不支持)
    AliyunIRecorder#setPictureSize(Camera.Size size);
  • 其他
    配置项 配置实例
    设置特效信息(水印、静态贴纸、动图、位置、大小)
    AliyunIRecorder#setEffectView(float xRatio,float yRatio,float widthRatio,float heightRatio,EffectBase effectBase);

开始录制

配置项 配置实例
开始录制一个片段视频
AliyunIRecorder#startRecording();
取消录制一个片段视频
AliyunIRecorder#cancelRecording();
停止录制一个片段视频
AliyunIRecorder#stopRecording();

完成录制

配置项 配置实例
结束录制,并且将录制片段视频拼接成一个视频
AliyunIRecorder#finishRecording();
结束录制,生成片段视频的配置信息(不拼接片段)
AliyunIRecorder#finishRecordingForEdit();