public interface AliyunIRecorder
| Modifier and Type | Method and Description |
|---|---|
int |
addImage(EffectImage effctImage)
Deprecated.
v3.27.0 废弃,请使用
getPasterManager()代替 |
int |
addPaster(EffectPaster effectPaster)
Deprecated.
v3.27.0 废弃,请使用
getPasterManager()代替 |
int |
addPaster(EffectPaster effectPaster,
float sx,
float sy,
float sw,
float sh,
float rotation,
boolean flip)
Deprecated.
v3.27.0 废弃,请使用
getPasterManager()代替 |
int |
applyAnimationFilter(EffectFilter effectFilter)
设置动效滤镜,将滤镜资源的目录填入到
EffectBase.setPath(String)中,或者通过EffectFilter.Builder来
构建 |
int |
applyBackgroundMusic(EffectStream effectStream)
v3.27.0 新增
设置录制背景音乐
|
int |
applyFilter(EffectFilter effectFilter)
设置滤镜效果
|
void |
cancelRecording()
取消录制视频
|
void |
destroy()
Deprecated.
v3.27.0 废弃,请使用
release()代替 |
int |
finishRecording()
结束录制合成视频
|
Uri |
finishRecordingForEdit()
结束录制,并且将录制的片段描述信息保存成json文件,返回json文件的Uri,用于编辑等功能。
|
AliyunLogInfo |
getAliyunLogInfo()
获取打点数据信息
|
int |
getBeautyLevel()
获取当前美颜度
|
int |
getCameraCount()
获取摄像头数量
|
AliyunIClipManager |
getClipManager()
获取片段管理器
|
float |
getCurrentExposureCompensationRatio()
获取当前曝光度的比例值
|
AliyunIRecordPasterManager |
getPasterManager()
获取贴图管理器
|
java.util.List<Camera.Size> |
getSupportedPictureSize()
获取当前摄像头支持的照片尺寸
|
java.util.SortedSet<Size> |
getSupportedPictureSizes()
获取当前摄像头支持的照片尺寸
|
void |
needFaceTrackInternal(boolean need)
是否需要开启内置人脸识别
|
void |
release()
销毁并释放资源
|
void |
removeAnimationFilter(EffectFilter effctFilter)
删除动效滤镜
|
int |
removeBackgroundMusic()
v3.27.0 新增
移除背景音乐
|
int |
removeFilter()
v3.27.0 新增
移除滤镜效果
|
void |
removeImage(EffectImage effctImage)
Deprecated.
v3.27.0 废弃,请使用
getPasterManager()代替 |
void |
removePaster(EffectPaster effectPaster)
Deprecated.
v3.27.0 废弃,请使用
getPasterManager()代替 |
int |
resizePreviewSize(int width,
int height)
重新设置预览窗口大小(可以实现动态切换预览画幅)
|
void |
setBeautyLevel(int level)
设置美颜度
|
void |
setBeautyStatus(boolean on)
Deprecated.
v3.27.0 废弃,请使用
setBeautyLevel(int)代替 |
void |
setCamera(CameraType camera)
设置开启预览时的摄像头类型。仅在第一次打开时生效,后面如果要切换摄像头使用
switchCamera() |
void |
setCameraCaptureDataMode(int captureDataMode)
设置Camera 数据回调方式
|
void |
setCameraParam(CameraParam cameraParam)
设置摄像头预览参数
|
void |
setDisplayView(SurfaceView displayView)
设置显示预览的
SurfaceView |
int |
setEffectView(float xRatio,
float yRatio,
float widthRatio,
float heightRatio,
EffectBase effectBase)
Deprecated.
v3.27.0 废弃,请使用
getPasterManager()代替 |
int |
setExposureCompensationRatio(float value)
设置曝光度比例
|
void |
setFaceDetectRotation(int rotation)
设置单独的人脸识别角度,如果使用本接口,请不要使用setRotation
|
int |
setFaces(float[][] faces)
设置人脸坐标点,而二维组每个元素,代表一张脸的6个特征点。
|
void |
setFaceTrackInternalMaxFaceCount(int maxFaceCount)
设置内置人脸识别的最大识别数,最大为3个,大于3个为3个
|
int |
setFaceTrackInternalModelPath(java.lang.String path)
设置人脸识别模型文件夹路径
这里必须是包含模型文件的目录路径,模型文件的文件名不能修改
|
void |
setFocus(float xRatio,
float yRatio)
设置对焦点,仅当
setFocusMode(int) 的参数为CameraParam.FOCUS_MODE_AUTO时有效 |
void |
setFocus(Point point)
Deprecated.
|
void |
setFocusMode(int mode)
设置聚焦模式
|
int |
setGop(int gop)
Deprecated.
v3.27.0 废弃,请使用
setMediaInfo(MediaInfo)代替 |
void |
setIsAutoClearClipVideos(boolean isAutoClear)
Added in v3.23.0, set whether to clear the clip video files, default is false
Note: if you set true, you should not use
finishRecordingForEdit() |
boolean |
setLight(FlashType flashType)
设置闪光灯模式
|
void |
setMediaInfo(MediaInfo mediaInfo)
设置录制的媒体信息
|
void |
setMusic(java.lang.String path,
long startTimeMills,
long durationMills)
Deprecated.
v3.27.0 废弃,请使用
applyBackgroundMusic(EffectStream) 代替 |
void |
setMute(boolean isMute)
录制静音
|
void |
setOnAudioCallback(OnAudioCallBack callback)
回调pcm音频数据,音频数据的格式为单通道,16位,采样率为44.1khz,
|
void |
setOnChoosePictureSizeCallBack(OnChoosePictureSizeCallback callback)
设置拍照分辨率回调
|
void |
setOnEncoderInfoCallback(OnEncoderInfoCallback callback)
v3.27.0 修改: setEncoderInfoCallback -> setOnEncoderInfoCallback
设置编码信息回调
|
void |
setOnFaceDetectInfoListener(OnFaceDetectInfoListener listener)
设置人脸检测信息变化的回调,当人脸检测信息发生改变时将触发
OnFaceDetectInfoListener.onFaceInfoChange(FaceDetectInfo) |
void |
setOnFrameCallback(OnFrameCallback callback)
设置采集帧回调,每采集一帧数据都通过该回调返回帧数据
|
void |
setOnRecordCallback(OnRecordCallback callback)
v3.27.0 修改: setRecordCallback -> setOnRecordCallback
设置录制回调
|
void |
setOnTextureIdCallback(OnTextureIdCallback callback)
设置纹理ID回调
|
int |
setOutputPath(java.lang.String path)
设置输出文件路径
|
int |
setPictureSize(Camera.Size size)
设置照片尺寸
|
int |
setPictureSize(Size size)
设置照片尺寸
|
void |
setRate(float rate)
设置录制速率
|
void |
setRecordRotation(int rotation)
设置单独的录制视频角度,如果使用本接口,请不要使用setRotation
如果需要根据传感器角度来设置录制角度,需要加上计算
|
void |
setRotation(int rotation)
设置传感器的角度值,如果传感器返回的角度值不是0,90,180,270四个值中的,需要根据范围来确定
|
void |
setShutterSound(boolean bNeedShutterSound)
设置拍照时是否存在咔嚓声
|
void |
setTakePicturePreview(boolean bPreviewAfterPicture)
设置拍照后是否继续预览
|
int |
setVideoBitrate(int bitrate)
Deprecated.
v3.27.0 废弃,请使用
setMediaInfo(MediaInfo)代替 |
int |
setVideoFlipH(boolean flip)
设置输出视频是否竖直方向镜像(仅对输出视频有效,预览不改变)
|
void |
setVideoQuality(VideoQuality quality)
Deprecated.
v3.27.0 废弃, 请使用
setMediaInfo(MediaInfo)代替 |
int |
setZoom(float rate)
设置摄像头缩放比例
|
int |
startPreview()
开启预览
注意:该方法建议在
Activity#onResume()生命周期函数中调用 |
int |
startPreviewAfterTakePicture()
默认情况时,拍照结束会自动启动预览,故默认情况下用户不必调用 startPreviewAfterTakePicture;
若拍照结束后不自启预览时,用户需要手动调用 startPreviewAfterTakePicture 来启动预览.
|
int |
startRecording()
开始录制
|
void |
stopPreview()
停止预览
注意:该方法建议在
Activity#onPause()生命周期函数中调用 |
int |
stopRecording()
停止录制
|
int |
switchCamera()
切换摄像头
|
FlashType |
switchLight()
切换闪光灯
|
void |
takePhoto(boolean needBitmap)
Deprecated.
v3.27.0 废弃,请使用
takeSnapshot(boolean, OnPictureCallback)代替
该接口为异步接口,当照片生成后通过RecordCallback.onPictureBack(Bitmap)
或者 RecordCallback.onPictureDataBack(byte[]) 返回 |
void |
takePicture(boolean needBitmap)
Deprecated.
v3.27.0 废弃,请使用
takePicture(boolean, OnPictureCallback)代替
该接口为异步接口,当照片生成后通过RecordCallback.onPictureBack(Bitmap)
或者 RecordCallback.onPictureDataBack(byte[]) 返回 |
void |
takePicture(boolean needBitmap,
OnPictureCallback pictureCallback)
v3.27.0 新增
使用系统的拍照接口(不能包含特效)
该接口为异步接口,当照片生成后通过
OnPictureCallback.onPicture(Bitmap, byte[])返回 |
void |
takeSnapshot(boolean needBitmap,
OnPictureCallback pictureCallback)
v3.27.0 新增
截图
该接口为异步接口,当照片生成后通过
OnPictureCallback.onPicture(Bitmap, byte[]) |
int |
updateAnimationFilter(EffectFilter effectFilter)
更新动效滤镜,将滤镜资源的目录填入到
EffectBase.setPath(String)中,或者通过EffectFilter.Builder来
构建 |
java.lang.String |
version()
获取当前接口版本号
|
void setMediaInfo(MediaInfo mediaInfo)
mediaInfo - MediaInfoAliyunIClipManager getClipManager()
AliyunIClipManagerint setOutputPath(java.lang.String path)
path - @Deprecated void setVideoQuality(VideoQuality quality)
setMediaInfo(MediaInfo)代替quality - 质量等级VideoQuality@Deprecated int setGop(int gop)
setMediaInfo(MediaInfo)代替gop - 合法的区间[0,9000] 大于等于0,且小于等于9000 0的情况下,在有的手机上可以做到全I帧,而也有一些手机做不到全I帧AliyunErrorCode.OK --- 成功
AliyunErrorCode.ERROR_INVALID_ARGUMENTS --- 设置的值不在合法的区间内@Deprecated int setVideoBitrate(int bitrate)
setMediaInfo(MediaInfo)代替bitrate - AliyunErrorCode.ERROR_INVALID_ARGUMENTS --设置了无效的码率值void setCamera(CameraType camera)
switchCamera()camera - CameraType.BACK,
CameraType.FRONTvoid setDisplayView(SurfaceView displayView)
SurfaceViewdisplayView - void setCameraCaptureDataMode(int captureDataMode)
captureDataMode - CameraCaptureDataModeint startPreview()
Activity#onResume()生命周期函数中调用void stopPreview()
Activity#onPause()生命周期函数中调用@Deprecated void destroy()
release()代替void release()
v3.27.0 新增
@Deprecated int addPaster(EffectPaster effectPaster)
getPasterManager()代替setRotation(int)实现。rotation的具体计算方式,请参考Demo中的代码。
添加普通动图不能使用该接口,而需要使用addPaster(EffectPaster, float, float, float, float, float, boolean)effectPaster - EffectPaster@Deprecated int addPaster(EffectPaster effectPaster, float sx, float sy, float sw, float sh, float rotation, boolean flip)
getPasterManager()代替setEffectView(float, float, float, float, EffectBase)的执行效果会和此函数的执行效果进行叠加effectPaster - sx - 位置信息的x坐标(相对输出大小的比例值)sy - 位置信息的y坐标(相对输出大小的比例值)sw - 尺寸信息的宽度(相对输出大小的比例值)sh - 尺寸信息的高度(相对输出大小的比例值)rotation - 弧度flip - 是否反转setEffectView(float, float, float, float, EffectBase)@Deprecated void removePaster(EffectPaster effectPaster)
getPasterManager()代替effectPaster - AliyunIRecordPasterManager getPasterManager()
v3.27.0 新增
AliyunIRecordPasterManager@Deprecated int addImage(EffectImage effctImage)
getPasterManager()代替setEffectView(float, float, float, float, EffectBase)effctImage - @Deprecated void removeImage(EffectImage effctImage)
getPasterManager()代替effctImage - int applyFilter(EffectFilter effectFilter)
effectFilter - int removeFilter()
v3.27.0 新增 移除滤镜效果
int applyAnimationFilter(EffectFilter effectFilter)
EffectBase.setPath(String)中,或者通过EffectFilter.Builder来
构建effectFilter - int updateAnimationFilter(EffectFilter effectFilter)
EffectBase.setPath(String)中,或者通过EffectFilter.Builder来
构建effectFilter - void removeAnimationFilter(EffectFilter effctFilter)
effctFilter - int getCameraCount()
void setCameraParam(CameraParam cameraParam)
cameraParam - CameraParamint switchCamera()
FlashType switchLight()
FlashType.AUTO,
FlashType.OFF,
FlashType.ONboolean setLight(FlashType flashType)
flashType - int setZoom(float rate)
rate - int setExposureCompensationRatio(float value)
value - void setFocusMode(int mode)
mode - CameraParam.FOCUS_MODE_CONTINUE,
CameraParam.FOCUS_MODE_AUTO@Deprecated
void setMusic(java.lang.String path,
long startTimeMills,
long durationMills)
applyBackgroundMusic(EffectStream) 代替path - 音乐文件路径startTimeMills - 音乐开始时间,单位毫秒durationMills - 音乐长度,单位毫秒int applyBackgroundMusic(EffectStream effectStream)
v3.27.0 新增 设置录制背景音乐
effectStream - 音乐文件Beanint removeBackgroundMusic()
v3.27.0 新增 移除背景音乐
void setRate(float rate)
rate - 范围[0.5 - 2.0]void setMute(boolean isMute)
isMute - 是否静音@Deprecated void setFocus(Point point)
#setFocus(Pointpoint - 点击事件时获取的屏幕坐标的绝对值void setFocus(float xRatio,
float yRatio)
setFocusMode(int) 的参数为CameraParam.FOCUS_MODE_AUTO时有效xRatio - 坐标点x方向上相对预览显示窗口(并非屏幕大小)的比例值yRatio - 坐标点y方向上相对预览显示窗口(并非屏幕大小)的比例值int getBeautyLevel()
void setBeautyLevel(int level)
level - [0, 100], 0表示没有美颜,100表示最大美颜度@Deprecated void setBeautyStatus(boolean on)
setBeautyLevel(int)代替on - true:开, false:关int startRecording()
int stopRecording()
int finishRecording()
void cancelRecording()
Uri finishRecordingForEdit()
@Deprecated
int setEffectView(float xRatio,
float yRatio,
float widthRatio,
float heightRatio,
EffectBase effectBase)
getPasterManager()代替xRatio - 位置信息的x坐标(比例值)yRatio - 位置信息的y坐标(比例值)widthRatio - 大小信息的宽度(比例值)heightRatio - 大小信息的高度(比例值)effectBase - 对应的特效素材void setOnRecordCallback(OnRecordCallback callback)
callback - OnRecordCallbackvoid setOnEncoderInfoCallback(OnEncoderInfoCallback callback)
callback - OnEncoderInfoCallbackvoid setOnFrameCallback(OnFrameCallback callback)
callback - OnFrameCallbackvoid setOnChoosePictureSizeCallBack(OnChoosePictureSizeCallback callback)
callback - void setOnAudioCallback(OnAudioCallBack callback)
callback - int setFaces(float[][] faces)
faces - nx6的二维数组,6表示6个特征点
point[i][0] => LEFT_EYE_X 左眼X
point[i][1] => LEFT_EYE_Y 左眼Y
point[i][2] => RIGHT_EYE_X 右眼X
point[i][3] => RIGHT_EYE_Y 右眼Y
point[i][4] => MOUTH_X 嘴部X
point[i][5] => MOUTH_Y 嘴部Y
表示第i张脸的6个特征点。void setRotation(int rotation)
private int getSensorRotation() {
int orientation = orientationDetector.getOrientation();
int rotation = 90;
if (orientation >= 45 && orientation < 135) {
rotation = 180;
}
if (orientation >= 135 && orientation < 225) {
rotation = 270;
}
if (orientation >= 225 && orientation < 315) {
rotation = 0;
}
if (mCameraType == CameraType.FRONT) {
if (rotation != 0) {
rotation = 360 - rotation;
}
}
return rotation;
}
rotation - Do not use this method to control the angle when performing facial recognition or recording.setFaceDetectRotation(int),
setRecordRotation(int)void setFaceDetectRotation(int rotation)
setRecordRotation(int),
setRotation(int)void setRecordRotation(int rotation)
if (rotation == 90 || rotation == 270) {
rotation = (rotation + 90) % 360;
if (mAliyunCamera.getCameraInfo().facing == CameraInfo.CAMERA_FACING_BACK) {
rotation += 180;
rotation %= 360;
}
} else if (rotation == 0 || rotation == 180) {
rotation = (rotation + 270) % 360;
}
setRotation(int),
setFaceDetectRotation(int)void setOnTextureIdCallback(OnTextureIdCallback callback)
callback - OnTextureIdCallbackvoid setOnFaceDetectInfoListener(OnFaceDetectInfoListener listener)
OnFaceDetectInfoListener.onFaceInfoChange(FaceDetectInfo)listener - float getCurrentExposureCompensationRatio()
@Deprecated void takePhoto(boolean needBitmap)
takeSnapshot(boolean, OnPictureCallback)代替
该接口为异步接口,当照片生成后通过RecordCallback.onPictureBack(Bitmap)
或者 RecordCallback.onPictureDataBack(byte[]) 返回needBitmap - 是否需要生成Bitmap@Deprecated void takePicture(boolean needBitmap)
takePicture(boolean, OnPictureCallback)代替
该接口为异步接口,当照片生成后通过RecordCallback.onPictureBack(Bitmap)
或者 RecordCallback.onPictureDataBack(byte[]) 返回needBitmap - void takePicture(boolean needBitmap,
OnPictureCallback pictureCallback)
v3.27.0 新增
使用系统的拍照接口(不能包含特效)
该接口为异步接口,当照片生成后通过OnPictureCallback.onPicture(Bitmap, byte[])返回
needBitmap - void takeSnapshot(boolean needBitmap,
OnPictureCallback pictureCallback)
v3.27.0 新增
截图
该接口为异步接口,当照片生成后通过OnPictureCallback.onPicture(Bitmap, byte[])
needBitmap - 是否需要生成Bitmapvoid needFaceTrackInternal(boolean need)
need - int setFaceTrackInternalModelPath(java.lang.String path)
path - AliyunErrorCode.OK-成功
AliyunErrorCode.ERROR_INVALID_ARGUMENTS-失败,文件无效(文件路径错误,或者文件损坏/不完整)void setFaceTrackInternalMaxFaceCount(int maxFaceCount)
maxFaceCount - void setShutterSound(boolean bNeedShutterSound)
bNeedShutterSound - true: 有拍照时的咔嚓声, false: 无拍照时的咔嚓声;
默认为 true.void setTakePicturePreview(boolean bPreviewAfterPicture)
bPreviewAfterPicture - true: 拍照后启动预览, false: 拍照后停留在拍完后的照片;
默认为 true.java.lang.String version()
java.util.List<Camera.Size> getSupportedPictureSize()
java.util.SortedSet<Size> getSupportedPictureSizes()
int setPictureSize(Camera.Size size)
size - int setPictureSize(Size size)
size - AliyunLogInfo getAliyunLogInfo()
int startPreviewAfterTakePicture()
拍照结束后是否自启动预览, @see setTakePicturePreview(boolean bNeedPreviewAfterPicture)
int resizePreviewSize(int width,
int height)
width - 预览宽度height - 预览高度int setVideoFlipH(boolean flip)
flip - 是否镜像void setIsAutoClearClipVideos(boolean isAutoClear)
finishRecordingForEdit()isAutoClear -