public interface AliyunIRecorder
限定符和类型 | 方法和说明 |
---|---|
int |
addImage(EffectImage effctImage)
添加水印素材
|
int |
addPaster(EffectPaster effectPaster)
添加动图素材
|
int |
addPaster(EffectPaster effectPaster,
float sx,
float sy,
float sw,
float sh,
float rotation,
boolean flip)
注意
setEffectView(float, float, float, float, EffectBase) 的执行效果会和此函数的执行效果进行叠加 |
int |
applyFilter(EffectFilter effectFilter)
设置滤镜效果
|
void |
cancelRecording()
取消录制视频
|
void |
destroy()
销毁并释放资源
|
int |
finishRecording()
结束录制合成视频
|
android.net.Uri |
finishRecordingForEdit()
结束录制,并且将录制的片段描述信息保存成json文件,返回json文件的Uri,用于编辑等功能。
|
com.aliyun.log.struct.AliyunLogInfo |
getAliyunLogInfo()
获取打点数据信息
|
int |
getBeautyLevel()
获取当前美颜度
|
int |
getCameraCount()
获取摄像头数量
|
AliyunIClipManager |
getClipManager()
获取片段管理器
|
float |
getCurrentExposureCompensationRatio()
获取当前曝光度的比例值
|
java.util.List<android.hardware.Camera.Size> |
getSupportedPictureSize()
获取当前摄像头支持的照片尺寸
|
void |
needFaceTrackInternal(boolean need)
是否需要开启内置人脸识别
|
void |
removeImage(EffectImage effctImage)
删除水印素材
|
void |
removePaster(EffectPaster effectPaster)
删除动图素材
|
void |
setBeautyLevel(int level)
设置美颜度
|
void |
setBeautyStatus(boolean on)
设置美颜开/关
|
void |
setCamera(CameraType camera)
设置摄像头类型
|
void |
setCameraParam(CameraParam cameraParam)
设置摄像头预览参数
|
void |
setDisplayView(android.opengl.GLSurfaceView displayView)
设置显示预览的
GLSurfaceView |
void |
setEffectView(float xRatio,
float yRatio,
float widthRatio,
float heightRatio,
EffectBase effectBase)
设置特效信息(位置,大小)
|
void |
setEncoderInfoCallback(EncoderInfoCallback callback)
设置编码信息回调
|
void |
setExposureCompensationRatio(float value)
设置曝光度比例
|
int |
setFaces(float[][] faces)
设置人脸坐标数据,二维数组表示可以设置多个人脸坐标数据,每个一维数组存储一套人脸坐标,
一套人脸坐标从index0开始,按照0:左眼X坐标值,1:左眼Y坐标值,2:右眼X坐标值,3:右眼Y坐标值
4:嘴巴X坐标值,5:嘴巴Y坐标值的顺序传递,顺序不能错。
|
void |
setFaceTrackInternalModelPath(java.lang.String path)
设置人脸识别模型文件夹路径
这里必须是包含模型文件的目录路径,模型文件的文件名不能修改
|
void |
setFocus(float xRatio,
float yRatio)
设置对焦点,仅当
setFocusMode(int) 的参数为CameraParam.FOCUS_MODE_AUTO 时有效 |
void |
setFocus(android.graphics.Point point)
已过时。
|
void |
setFocusMode(int mode)
设置聚焦模式
|
void |
setGop(int gop)
设置Gop大小
|
boolean |
setLight(FlashType flashType)
设置闪光灯模式
|
void |
setMediaInfo(MediaInfo mediaInfo)
设置录制的媒体信息
这里需要注意,如果
MediaInfo.isHWAutoSize() 为true(默认为true)
则在硬编模式(目前仅支持硬编)下,如果宽/高不是16的倍数,则会自动矫正为16的倍数,这样会导致设置的宽/高
与视频实际输出宽/高会有出入,表现出来的效果就是有黑边,而如果MediaInfo.isHWAutoSize() 为
false,在宽/高不是16的倍数时,该方法将抛出IllegalArgumentException,需要开发者自行处理该异常。 |
void |
setMusic(java.lang.String path,
long startTime,
long duration)
设置录制背景音乐
|
void |
setMute(boolean isMute)
录制静音
|
void |
setOnFaceDetectInfoListener(OnFaceDetectInfoListener listener)
设置人脸检测信息变化的回调,当人脸检测信息发生改变时将出发
OnFaceDetectInfoListener.onFaceInfoChange(FaceDetectInfo) |
void |
setOnFrameCallback(OnFrameCallBack callback)
设置采集帧回调,每采集一帧数据都通过该回调返回帧数据
|
void |
setOnTextureIdCallback(OnTextureIdCallBack callback)
设置纹理ID回调
|
void |
setOutputPath(java.lang.String path)
设置输出文件路径
|
int |
setPictureSize(android.hardware.Camera.Size size)
设置照片尺寸
|
void |
setRate(float rate)
设置录制速率
|
void |
setRecordCallback(RecordCallback callback)
设置录制回调
|
void |
setRecordCallBack(RecordCallback callBack)
|
void |
setRotation(int rotation)
设置传感器的角度值,如果传感器不是0,90,180,270四个值中的,需要根据范围来确定
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 !
|
void |
setVideoBitrate(int bitrate)
设置视频码率
|
void |
setVideoQuality(com.aliyun.struct.common.VideoQuality quality)
设置视频质量
|
void |
setZoom(float rate)
设置摄像头缩放比例
|
void |
startPreview()
开启预览
注意:该方法建议在
Activity.onResume() 生命周期函数中调用 |
void |
startRecording()
开始录制
|
void |
stopPreview()
停止预览
注意:该方法建议在
Activity.onPause() 生命周期函数中调用 |
void |
stopRecording()
停止录制
|
int |
switchCamera()
切换摄像头
|
FlashType |
switchLight()
切换闪光灯
|
void |
takePhoto(boolean needBitmap)
拍照(从GPU中抓取数据,可以包含特效)
该接口为异步接口,当照片生成后通过
RecordCallback.onPictureBack(Bitmap)
或者 RecordCallback.onPictureDataBack(byte[]) 返回 |
void |
takePicture(boolean needBitmap)
使用系统的拍照接口(不能包含特效)
该接口为异步接口,当照片生成后通过
RecordCallback.onPictureBack(Bitmap)
或者 RecordCallback.onPictureDataBack(byte[]) 返回 |
java.lang.String |
version()
获取当前接口版本号
|
void setMediaInfo(MediaInfo mediaInfo)
MediaInfo.isHWAutoSize()
为true(默认为true)
则在硬编模式(目前仅支持硬编)下,如果宽/高不是16的倍数,则会自动矫正为16的倍数,这样会导致设置的宽/高
与视频实际输出宽/高会有出入,表现出来的效果就是有黑边,而如果MediaInfo.isHWAutoSize()
为
false,在宽/高不是16的倍数时,该方法将抛出IllegalArgumentException,需要开发者自行处理该异常。mediaInfo
- MediaInfo
AliyunIClipManager getClipManager()
AliyunIClipManager
void setOutputPath(java.lang.String path)
path
- void setVideoQuality(com.aliyun.struct.common.VideoQuality quality)
quality
- void setGop(int gop)
gop
- void setVideoBitrate(int bitrate)
bitrate
- 视频码率void setCamera(CameraType camera)
camera
- CameraType.BACK
,
CameraType.FRONT
void setDisplayView(android.opengl.GLSurfaceView displayView)
GLSurfaceView
displayView
- void startPreview()
Activity.onResume()
生命周期函数中调用void stopPreview()
Activity.onPause()
生命周期函数中调用void destroy()
int addPaster(EffectPaster effectPaster)
effectPaster
- EffectPaster
int addPaster(EffectPaster effectPaster, float sx, float sy, float sw, float sh, float rotation, boolean flip)
setEffectView(float, float, float, float, EffectBase)
的执行效果会和此函数的执行效果进行叠加effectPaster
- sx
- 位置信息的x坐标(相对输出大小的比例值)sy
- 位置信息的y坐标(相对输出大小的比例值)sw
- 尺寸信息的宽度(相对输出大小的比例值)sh
- 尺寸信息的高度(相对输出大小的比例值)rotation
- 弧度flip
- 是否反转setEffectView(float, float, float, float, EffectBase)
void removePaster(EffectPaster effectPaster)
effectPaster
- int addImage(EffectImage effctImage)
effctImage
- void removeImage(EffectImage effctImage)
effctImage
- int applyFilter(EffectFilter effectFilter)
effectFilter
- int getCameraCount()
void setCameraParam(CameraParam cameraParam)
cameraParam
- CameraParam
int switchCamera()
FlashType switchLight()
FlashType.AUTO
,
FlashType.OFF
,
FlashType.ON
boolean setLight(FlashType flashType)
flashType
- void setZoom(float rate)
rate
- void setExposureCompensationRatio(float value)
value
- void setFocusMode(int mode)
mode
- CameraParam.FOCUS_MODE_CONTINUE
,
CameraParam.FOCUS_MODE_AUTO
void setMusic(java.lang.String path, long startTime, long duration)
path
- 音乐文件路径startTime
- 音乐开始时间,单位毫秒duration
- 音乐长度,单位毫秒void setRate(float rate)
rate
- 范围[0.5 - 2.0]void setMute(boolean isMute)
isMute
- 是否静音@Deprecated void setFocus(android.graphics.Point point)
setFocus(float xRatio, float yRatio)
设置对焦点point
- 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表示最大美颜度void setBeautyStatus(boolean on)
on
- true:开, false:关void startRecording()
void stopRecording()
int finishRecording()
void cancelRecording()
android.net.Uri finishRecordingForEdit()
void setEffectView(float xRatio, float yRatio, float widthRatio, float heightRatio, EffectBase effectBase)
xRatio
- 位置信息的x坐标(比例值)yRatio
- 位置信息的y坐标(比例值)widthRatio
- 大小信息的宽度(比例值)heightRatio
- 大小信息的高度(比例值)effectBase
- 对应的特效素材void setRecordCallback(RecordCallback callback)
callback
- RecordCallback
void setEncoderInfoCallback(EncoderInfoCallback callback)
callback
- EncoderInfoCallback
void setRecordCallBack(RecordCallback callBack)
callBack
- 回调void setOnFrameCallback(OnFrameCallBack callback)
callback
- OnFrameCallBack
int setFaces(float[][] faces)
faces
- 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
- void setOnTextureIdCallback(OnTextureIdCallBack callback)
callback
- OnTextureIdCallBack
void setOnFaceDetectInfoListener(OnFaceDetectInfoListener listener)
OnFaceDetectInfoListener.onFaceInfoChange(FaceDetectInfo)
listener
- float getCurrentExposureCompensationRatio()
void takePhoto(boolean needBitmap)
RecordCallback.onPictureBack(Bitmap)
或者 RecordCallback.onPictureDataBack(byte[])
返回needBitmap
- 是否需要生成Bitmapvoid takePicture(boolean needBitmap)
RecordCallback.onPictureBack(Bitmap)
或者 RecordCallback.onPictureDataBack(byte[])
返回needBitmap
- void needFaceTrackInternal(boolean need)
need
- void setFaceTrackInternalModelPath(java.lang.String path)
path
- java.lang.String version()
java.util.List<android.hardware.Camera.Size> getSupportedPictureSize()
int setPictureSize(android.hardware.Camera.Size size)
size
- com.aliyun.log.struct.AliyunLogInfo getAliyunLogInfo()