public class TXUGCRecord extends java.lang.Object implements TXUGCPartsManager.IPartsManagerListener
Modifier and Type | Class and Description |
---|---|
static interface |
TXUGCRecord.VideoCustomProcessListener |
Modifier and Type | Field and Description |
---|---|
static float |
ENCODE_SPEED_FAST |
static float |
ENCODE_SPEED_FASTEST |
static float |
ENCODE_SPEED_SLOW |
static float |
ENCODE_SPEED_SLOWEST |
static float |
PLAY_SPEED_FAST |
static float |
PLAY_SPEED_FASTEST |
static float |
PLAY_SPEED_SLOW |
static float |
PLAY_SPEED_SLOWEST |
Modifier and Type | Method and Description |
---|---|
void |
didDetectFacePoints(float[] points) |
void |
didProcessFrame(byte[] data,
int width,
int height,
int format,
long timestamp) |
void |
didProcessFrame(int texture,
int width,
int height,
long timestamp) |
static TXUGCRecord |
getInstance(Context context)
获取录制实例
|
int |
getMaxZoom()
获取摄像头支持的最大焦距,此方法同时可以检查是否支持变焦
|
int |
getMusicDuration(java.lang.String path)
获取音乐文件时长.
|
TXUGCPartsManager |
getPartsManager() |
void |
onDeleteAllParts() |
void |
onDeleteLastPart() |
void |
onEncodeFormat(MediaFormat format) |
void |
onEncodeNAL(TXSNALPacket nal,
int errCode) |
void |
onNotifyEvent(int event,
Bundle param) |
void |
onRecordEncData(byte[] data,
long timestamp,
int sampleRate,
int channels,
int bits) |
void |
onRecordError(int errNo,
java.lang.String errInfo) |
void |
onRecordPcmData(byte[] data,
long timestamp,
int sampleRate,
int channels,
int bits) |
void |
onRecordRawPcmData(byte[] data,
long timestamp,
int sampleRate,
int channels,
int bits,
boolean withBgm) |
void |
onSurfaceTextureAvailable(SurfaceTexture surfaceTexture) |
void |
onSurfaceTextureDestroy(SurfaceTexture surfaceTexture) |
int |
onTextureProcess(int textureId,
float[] matrix) |
boolean |
pauseBGM()
暂停播放背景音乐
|
int |
pauseRecord()
暂停视频录制
|
boolean |
playBGMFromTime(int startTime,
int endTime)
播放背景音乐.
|
void |
release() |
boolean |
resumeBGM()
继续播放背景音乐
|
int |
resumeRecord()
继续视频录制
|
boolean |
seekBGM(int startTime,
int endTime) |
void |
setAspectRatio(int displayType)
设置宽高比
|
void |
setBeautyDepth(int style,
int beautyDepth,
int whiteningDepth,
int ruddyDepth)
设置美颜 和 美白 效果级别
|
void |
setBeautyStyle(int style)
设置美颜类型
|
int |
setBGM(java.lang.String path)
设置背景音乐文件
|
void |
setBGMNofify(TXRecordCommon.ITXBGMNotify notify)
设置背景音乐播放回调接口.
|
boolean |
setBGMVolume(float x)
设置背景音乐的音量大小.
|
void |
setChinLevel(int scale) |
void |
setEyeScaleLevel(float eyeScaleLevel)
设置大眼效果
|
void |
setFaceScaleLevel(float faceScaleLevel)
设置瘦脸效果
|
void |
setFaceShortLevel(int level) |
void |
setFaceVLevel(int level) |
void |
setFilter(Bitmap filterImage)
setFilter 设置指定素材滤镜特效
|
void |
setFilter(Bitmap leftBitmap,
float leftIntensity,
Bitmap rightBitmap,
float rightIntensity,
float leftRadio)
setFilter 设置组合滤镜特效
|
void |
setGreenScreenFile(java.lang.String path,
boolean isLoop)
设置绿幕文件:目前图片支持jpg/png,视频支持mp4/3gp等Android系统支持的格式
API要求18
|
void |
setHomeOrientation(int homeOrientation) |
boolean |
setMicVolume(float x)
设置麦克风的音量大小.
|
void |
setMotionMute(boolean motionMute) |
void |
setMotionTmpl(java.lang.String tmplPath)
setMotionTmpl 设置动效文件
|
void |
setMute(boolean isMute) |
void |
setNoseSlimLevel(int scale) |
void |
setRecordSpeed(int recordSpeed)
录制速度
|
void |
setRenderRotation(int renderRotation) |
void |
setReverb(int reverbType)
混响
|
void |
setSpecialRatio(float specialRatio)
setSpecialRatio 设置滤镜效果程度
|
void |
setVideoBitrate(int bitrate) |
void |
setVideoProcessListener(TXUGCRecord.VideoCustomProcessListener listener)
设置自定义图像处理回调
|
void |
setVideoRecordListener(TXRecordCommon.ITXVideoRecordListener listener)
设置录制回调接口
|
void |
setVideoRenderMode(int renderMode)
渲染模式TXRecordCommon:RENDER_MODE_FULL_FILL_SCREEN / RENDER_MODE_ADJUST_RESOLUTION
|
void |
setVideoResolution(int resolution)
单独设置分辨率
|
void |
setVoiceChangerType(int voiceChangerType)
变声
|
void |
setWatermark(Bitmap watermarkBitmap,
TXVideoEditConstants.TXRect txRect)
设置全局水印
TXRect-水印相对于视频图像的归一化值,sdk内部会根据水印宽高比自动计算height
比如视频图像大小为(540,960) TXRect三个参数设置为0.1,0.1,0.1,水印的实际像素坐标为(540 * 0.1,960 * 0.1,540 * 0.1 ,540 * 0.1 * watermarkBitmap.height / watermarkBitmap.width)
|
boolean |
setZoom(int value) |
void |
snapshot(TXRecordCommon.ITXSnapshotListener listener)
截图
|
int |
startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig config,
com.tencent.rtmp.ui.TXCloudVideoView previewView)
启动摄像头预览
|
int |
startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig config,
com.tencent.rtmp.ui.TXCloudVideoView previewView)
启动摄像头预览
|
int |
startRecord()
开始视频录制,SDK内部会自动生成视频路经和视频封面,在TXVideoRecordListener里面返回
|
int |
startRecord(java.lang.String videoFilePath,
java.lang.String coverPath)
开始视频录制
|
int |
startRecord(java.lang.String videoFilePath,
java.lang.String videoPartFolder,
java.lang.String coverPath)
开始视频录制
|
boolean |
stopBGM()
停止播放背景音乐.
|
void |
stopCameraPreview()
停止摄像头预览
|
int |
stopRecord()
停止视频录制
|
boolean |
switchCamera(boolean isFront)
切换前后摄像头
|
boolean |
toggleTorch(boolean enable)
toggleTorch, 打开闪关灯
|
int |
willAddWatermark(int texture,
int width,
int height) |
public static float ENCODE_SPEED_FAST
public static float ENCODE_SPEED_FASTEST
public static float ENCODE_SPEED_SLOW
public static float ENCODE_SPEED_SLOWEST
public static float PLAY_SPEED_FAST
public static float PLAY_SPEED_FASTEST
public static float PLAY_SPEED_SLOW
public static float PLAY_SPEED_SLOWEST
public void didDetectFacePoints(float[] points)
public void didProcessFrame(byte[] data, int width, int height, int format, long timestamp)
public void didProcessFrame(int texture, int width, int height, long timestamp)
public static TXUGCRecord getInstance(Context context)
context
- 用于系统api调用,内部会转成applicationContext,不会导致context泄露public int getMaxZoom()
public int getMusicDuration(java.lang.String path)
path
- 音乐文件路径
path == null 获取当前播放歌曲时长
path != null 获取path路径歌曲时长public TXUGCPartsManager getPartsManager()
public void onDeleteAllParts()
onDeleteAllParts
in interface TXUGCPartsManager.IPartsManagerListener
public void onDeleteLastPart()
onDeleteLastPart
in interface TXUGCPartsManager.IPartsManagerListener
public void onEncodeFormat(MediaFormat format)
public void onEncodeNAL(TXSNALPacket nal, int errCode)
public void onNotifyEvent(int event, Bundle param)
public void onRecordEncData(byte[] data, long timestamp, int sampleRate, int channels, int bits)
public void onRecordError(int errNo, java.lang.String errInfo)
public void onRecordPcmData(byte[] data, long timestamp, int sampleRate, int channels, int bits)
public void onRecordRawPcmData(byte[] data, long timestamp, int sampleRate, int channels, int bits, boolean withBgm)
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture)
public void onSurfaceTextureDestroy(SurfaceTexture surfaceTexture)
public int onTextureProcess(int textureId, float[] matrix)
public boolean pauseBGM()
public int pauseRecord()
public boolean playBGMFromTime(int startTime, int endTime)
startTime
- 音乐播放起始时间 msendTime
- 音乐播放结束时间 mspublic void release()
public boolean resumeBGM()
public int resumeRecord()
public boolean seekBGM(int startTime, int endTime)
public void setAspectRatio(int displayType)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
displayType
- TXRecordCommon.VIDEO_ASPECT_RATIO_9_16,VIDEO_ASPECT_RATIO_3_4,VIDEO_ASPECT_RATIO_1_1public void setBeautyDepth(int style, int beautyDepth, int whiteningDepth, int ruddyDepth)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
设置的值会在调用stopCameraPreview()
后失效
style
- 美颜风格.三种美颜风格:0 :光滑 1:自然 2:朦胧beautyDepth
- : 美颜级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。whiteningDepth
- : 美白级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。ruddyDepth
- : 红润级别取值范围 0 ~ 9; 0 表示关闭 1 ~ 9值越大 效果越明显。public void setBeautyStyle(int style)
style
- public int setBGM(java.lang.String path)
开始录制(调用startRecord接口)之后不能切换背景音乐,可能会导致异常,如果需要切换音乐,请先停止视频录制(调用stopRecord接口)
path
- 音乐文件路径public void setBGMNofify(TXRecordCommon.ITXBGMNotify notify)
该接口用于混音处理,比如将背景音乐与麦克风采集到的声音混合后播放.
notify
- 回调借口,详细请参看TXRecordCommon.ITXBGMNotify
public boolean setBGMVolume(float x)
该接口用于混音处理,比如将背景音乐与麦克风采集到的声音混合后播放.
请在 playBGMFromTime(int, int)
后调用
x
- 音量大小,1为正常音量,建议值为0~2,如果需要调大背景音量可以设置更大的值.public void setChinLevel(int scale)
public void setEyeScaleLevel(float eyeScaleLevel)
eyeScaleLevel
- 大眼级别.public void setFaceScaleLevel(float faceScaleLevel)
faceScaleLevel
- 瘦脸级别.public void setFaceShortLevel(int level)
public void setFaceVLevel(int level)
public void setFilter(Bitmap filterImage)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
设置的值会在调用stopCameraPreview()
后失效
filterImage
- : 指定素材,即颜色查找表图片。注意:一定要用png格式!!!
demo用到的滤镜查找表图片位于RTMPAndroidDemo/app/src/main/res/drawable-xxhdpi/目录下。public void setFilter(Bitmap leftBitmap, float leftIntensity, Bitmap rightBitmap, float rightIntensity, float leftRadio)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
设置的值会在调用stopCameraPreview()
后失效
leftBitmap
- 左侧滤镜 注意:一定要用png格式!!leftIntensity
- 左侧滤镜程度rightBitmap
- 右侧滤镜 注意:一定要用png格式!!rightIntensity
- 右侧滤镜程度leftRadio
- 左侧图片占的比例大小public void setGreenScreenFile(java.lang.String path, boolean isLoop)
path
- :绿幕文件位置,支持两种方式:
1.资源文件放在assets目录,path直接取文件名
2.path取文件绝对路径isLoop
- :图片文件忽略,视频文件设置是否循环播放public void setHomeOrientation(int homeOrientation)
public boolean setMicVolume(float x)
该接口用于混音处理,比如将背景音乐与麦克风采集到的声音混合后播放.
请在 playBGMFromTime(int, int)
后调用
x:
- 音量大小,1为正常音量,建议值为0~2,如果需要调大音量可以设置更大的值.public void setMotionMute(boolean motionMute)
motionMute
- public void setMotionTmpl(java.lang.String tmplPath)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
tmplPath
- 文件路径: 空String ""则取消动效public void setMute(boolean isMute)
public void setNoseSlimLevel(int scale)
public void setRecordSpeed(int recordSpeed)
recordSpeed
- TXRecordCommon.RECORD_SPEED_SLOWEST 极慢速 public void setRenderRotation(int renderRotation)
public void setReverb(int reverbType)
public void setSpecialRatio(float specialRatio)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
设置的值会在调用stopCameraPreview()
后失效
specialRatio
- : 从0到1,越大滤镜效果越明显,默认取值0.5public void setVideoBitrate(int bitrate)
bitrate
- public void setVideoProcessListener(TXUGCRecord.VideoCustomProcessListener listener)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
listener
- public void setVideoRecordListener(TXRecordCommon.ITXVideoRecordListener listener)
listener
- 录制结果回调接口public void setVideoRenderMode(int renderMode)
在视频比例9:16时的渲染模式,RENDER_MODE_FULL_FILL_SCREEN:将图像等比例铺满整个屏幕,多余部分裁剪掉,此模式下画面不留黑边
RENDER_MODE_ADJUST_RESOLUTION:将图像等比例缩放,缩放后的宽和高都不会超过显示区域,居中显示
renderMode
- public void setVideoResolution(int resolution)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用并且开始录制后不要调用,调用后摄像头会重启
resolution
- TXRecordCommon.VIDEO_RESOLUTION_xxxpublic void setVoiceChangerType(int voiceChangerType)
public void setWatermark(Bitmap watermarkBitmap, TXVideoEditConstants.TXRect txRect)
watermarkBitmap
- 全局水印图片txRect
- 归一化坐标public boolean setZoom(int value)
value
- 焦距,取值 0~getMaxZoom();public void snapshot(TXRecordCommon.ITXSnapshotListener listener)
public int startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig config, com.tencent.rtmp.ui.TXCloudVideoView previewView)
config
- 自定义预览参数,详细请参看TXRecordCommon.TXUGCCustomConfig
videoBitrate建议值600-12000(SDK上限不再做限制);videoFps范围15-30;videoGop范围1-10spreviewView
- 预览视频的渲染view.public int startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig config, com.tencent.rtmp.ui.TXCloudVideoView previewView)
config
- 简化预览参数,详细请参看TXRecordCommon.TXUGCSimpleConfig
previewView
- 预览视频的渲染view.public int startRecord()
注意:这个接口SDK会自动管理生成的视频和封面,在下次调用startRecord的时候,SDK会自动删除上一次生成的视频和封面
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
public int startRecord(java.lang.String videoFilePath, java.lang.String coverPath)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
注意:这个接口客户需要自己管理生成的视频和封面,在不需要视频的时候自行删除
videoFilePath
- 视频文件全路径,调用者保证该路径能正常生成文件coverPath
- 视频封面截图,为空表示不需要生成视频封面public int startRecord(java.lang.String videoFilePath, java.lang.String videoPartFolder, java.lang.String coverPath)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
注意:这个接口客户需要自己管理生成的视频和封面,在不需要视频的时候自行删除
videoFilePath
- 视频文件全路径,调用者保证该路径能正常生成文件videoPartFolder
- 视频分段录制的文件存储目录,如果此参数为null,则使用/sdcard/TXUGC/TXUGCParts这个默认路径coverPath
- 视频封面截图,为空表示不需要生成视频封面public boolean stopBGM()
该接口用于混音处理,比如将背景音乐与麦克风采集到的声音混合后播放.
public void stopCameraPreview()
public int stopRecord()
请在 startRecord()
后调用
public boolean switchCamera(boolean isFront)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
设置的值会在调用stopCameraPreview()
后失效
isFront
- 是否前置摄像头public boolean toggleTorch(boolean enable)
请在 startCameraSimplePreview(TXRecordCommon.TXUGCSimpleConfig, TXCloudVideoView)
或者 startCameraCustomPreview(TXRecordCommon.TXUGCCustomConfig, TXCloudVideoView)
后调用
设置的值会在调用stopCameraPreview()
后失效
enable
- true, 打开,false, 关闭.public int willAddWatermark(int texture, int width, int height)