public class YMFLiveAPI extends java.lang.Object implements IEncoderListener, IYMFPreviewListener
| Modifier and Type | Class and Description |
|---|---|
static class |
YMFLiveAPI.VideoPublishInfoEnum |
| Modifier and Type | Method and Description |
|---|---|
void |
addPreviewFrameCallback(PreviewFrameCallback callback)
设置获取camera yuv数据回调client(NV21,图像方向以android手机坐标系0度)
|
void |
changeScreenLiveMode(java.lang.Boolean usedBitmap,
android.graphics.Bitmap bitmap)
录屏模式采用固定图片编码推流
|
java.lang.String |
checkCamera()
* 检测前后摄像头
|
void |
destory()
销毁开播库,还原所有参数
|
int |
getCameraPosition()
获取当前使用前置还是后置
|
static YMFLiveAPI |
getInstance() |
VideoEncoderType |
getVideoPublishEncodeInfo() |
int |
getVideoPublishInfo(YMFLiveAPI.VideoPublishInfoEnum infoEnum)
获取开播信息的帧率,码率,分辨率
|
void |
onEncodeEncParam(java.lang.String param)
sdk内部编码参数通知.
|
void |
onEncodeFirstFrame()
编码头一帧回调接口.
|
void |
onEncodeFrameData(byte[] data,
int len,
long pts,
long dts,
int frameType,
VideoEncoderType encodeType,
int svcTid,
int svcSid)
编码数据回调接口
|
void |
onEncodeResolution(int width,
int height)
实际编码的分辨率回调接口, 每3秒钟回调一次.
|
void |
onEncoderSwitch()
切换视频编码器
|
void |
onEncodeStat(int bitRate,
int frameRate)
编码码率,帧率统计数据回调接口, 每3秒钟回调一次.
|
void |
onHardEncoderError()
禁用硬编接口
|
void |
onRenderFirstFrame()
预览成功回调
|
void |
onWaterMarkSizeChange(int w,
int h)
切换弱网之后,编码分辨率变更,需要变换水印的坐标和宽高
|
int |
pauseVideoCapture(boolean bPauseCapture)
暂停/恢复摄像头采集, 不能用此接口直接开启采集
|
void |
removePreviewFrameCallback(PreviewFrameCallback callback) |
void |
requestEncodeIFrame()
强制编码I帧接口.
|
void |
setAbroadNetWorkStrategy(boolean flag) |
int |
setCameraPosition(int position) |
void |
setDeltaYYPtsMillions(long deltaPtsDts)
设置PTS同步矫正, 矫正值根据传输设置,客户端回调到sdk
|
void |
setGPUImageBeautyFilter(IGPUProcess gpuImageProcess)
由业务实现具体的特效,需要继承GPUImageBeauty抽象类,
详情参考GPUImageBeautyOrangeFilter
|
int |
setHardwareEncoderAvailable(boolean available)
禁用硬编与否接口
|
int |
setLocalVideoCanvas(android.view.SurfaceView view,
int renderMode)
Deprecated.
|
int |
setLocalVideoMirrorMode(int mode)
设置摄像头和编码镜像,只对前置摄像头有效
|
void |
setNetworkBitrateSuggest(int bitrate)
设置网络传输层建议码率接口.
|
void |
setOriginFrameToEncode(byte[] data,
int format,
int width,
int height,
int rotation,
long timestamp)
外部yuv数据推流数据输入接口
|
void |
setOriginTextureToEncode(int inputTexture,
int textureTarget,
int width,
int height,
int rotation,
long timestamp,
float[] transformer) |
int |
setPreviewRenderMode(int renderMode)
设置摄像头预览显示
|
void |
setPublishListener(IPublishListener listener)
设置YMFLiveApi的监听回调
|
int |
setWatermark(android.graphics.Bitmap bitmap,
int offsetX,
int offsetY)
给开播视频打水印
|
int |
startEncodeOrigin()
开启外部推流源推流编码,只有调用此接口之后输入的数据才能被编码发送
|
int |
startEncodeScreen()
开启录屏编码
|
int |
startEncodeVideo()
开启摄像头编码
|
int |
startOriginCapture(boolean useTexture)
开启外部数据源推流的采集
|
int |
startPreview(android.view.SurfaceView view,
int renderMode)
开启摄像头预览
|
int |
startScreenCapture(android.media.projection.MediaProjection mediaProjection)
开启录屏采集
|
int |
startVideoCapture()
开启摄像头采集,当摄像头采集处于停止状态调用此接口能强制开启采集
|
int |
stopEncodeOrigin()
停止外部推流源推流编码
|
int |
stopEncodeScreen()
停止录屏编码
|
int |
stopEncodeVideo()
停止摄像头编码
|
int |
stopOriginCapture()
关闭外部数据源推流的采集
|
int |
stopPreview()
停止摄像头预览,并将当前view画面清除
|
int |
stopScreenCapture()
停止录屏采集
|
int |
stopVideoCapture()
停止摄像头采集
|
boolean |
updatePublisherConfig(VideoPublisheParam params)
调用开关采集,开关编码等函数之前,必须先调用此函数
为了使开关采集和开关编码无序,所以在此函数中启动gl线程
|
public static YMFLiveAPI getInstance()
public void setPublishListener(IPublishListener listener)
listener - 监听回调public void destory()
public boolean updatePublisherConfig(VideoPublisheParam params)
params - public int startVideoCapture()
public int pauseVideoCapture(boolean bPauseCapture)
bPauseCapture - ture 停止采集,false开启采集public int stopVideoCapture()
public java.lang.String checkCamera()
public int startPreview(android.view.SurfaceView view,
int renderMode)
view - 预览相关的surfaceviewrenderMode - 预览模式 祥见@setPreviewRenderModepublic int stopPreview()
public int startEncodeVideo()
public int stopEncodeVideo()
public int setLocalVideoMirrorMode(int mode)
mode - public int setCameraPosition(int position)
@Deprecated
public int setLocalVideoCanvas(android.view.SurfaceView view,
int renderMode)
public int setPreviewRenderMode(int renderMode)
renderMode - public void setDeltaYYPtsMillions(long deltaPtsDts)
deltaPtsDts - 单位mspublic int getCameraPosition()
public int setWatermark(android.graphics.Bitmap bitmap,
int offsetX,
int offsetY)
bitmap - 水印图片offsetX - 水印在视频图像中的位置offsetY - 水印在视频图像中的位置public void requestEncodeIFrame()
public void setNetworkBitrateSuggest(int bitrate)
bitrate - 建议码率,单位为bps.public int getVideoPublishInfo(YMFLiveAPI.VideoPublishInfoEnum infoEnum)
infoEnum - 视频相关的信息,帧率,码率,分辨率public int setHardwareEncoderAvailable(boolean available)
available - public void changeScreenLiveMode(java.lang.Boolean usedBitmap,
android.graphics.Bitmap bitmap)
usedBitmap - 是否使用bitmap进行推流bitmap - 推流使用的图片public void setGPUImageBeautyFilter(IGPUProcess gpuImageProcess)
public void addPreviewFrameCallback(PreviewFrameCallback callback)
callback - public void removePreviewFrameCallback(PreviewFrameCallback callback)
public int startOriginCapture(boolean useTexture)
public int stopOriginCapture()
public int startEncodeOrigin()
public int stopEncodeOrigin()
public int startScreenCapture(android.media.projection.MediaProjection mediaProjection)
mediaProjection - android录屏对象public int stopScreenCapture()
public int startEncodeScreen()
public int stopEncodeScreen()
public void setOriginFrameToEncode(byte[] data,
int format,
int width,
int height,
int rotation,
long timestamp)
data - 外部原始图像数据format - 图像格式 0:rgba,1:i420,2:nv21width - 图像宽height - 图像高rotation - 图像角度 0,90,180,270timestamp - 当前图像编码的时间戳,必须递增public void setOriginTextureToEncode(int inputTexture,
int textureTarget,
int width,
int height,
int rotation,
long timestamp,
float[] transformer)
public void onEncodeStat(int bitRate,
int frameRate)
IEncoderListeneronEncodeStat in interface IEncoderListenerbitRate - 实际编码输出的码率.frameRate - 实际编码输出的帧率.public void onEncodeResolution(int width,
int height)
IEncoderListeneronEncodeResolution in interface IEncoderListenerwidth - 实际编码分辨率宽度height - 实际编码分辨率高度.public void onEncodeFirstFrame()
IEncoderListeneronEncodeFirstFrame in interface IEncoderListenerpublic void onRenderFirstFrame()
IYMFPreviewListeneronRenderFirstFrame in interface IYMFPreviewListenerpublic void onEncodeFrameData(byte[] data,
int len,
long pts,
long dts,
int frameType,
VideoEncoderType encodeType,
int svcTid,
int svcSid)
onEncodeFrameData in interface IEncoderListenerdata - 编码后的视频数据len - 视频数据的长度pts - 视频数据的pts, 单位是msdts - 视频数据的dts, 单位是msframeType - 视频数据的帧类型,YY系统中的帧类型取值一样.encodeType - 视频数据的编码类型,这里是开播SDK中定义的encodeType,特别提醒这里和yysdk中传输定义的encodeType有不同.svcTid - svc编码专用svcSid - svc编码专用public void onEncodeEncParam(java.lang.String param)
IEncoderListeneronEncodeEncParam in interface IEncoderListenerparam - 编码参数,一般用于调试打印在屏幕,或者统计等等.public void onHardEncoderError()
onHardEncoderError in interface IEncoderListenerpublic void onEncoderSwitch()
IEncoderListeneronEncoderSwitch in interface IEncoderListenerpublic void onWaterMarkSizeChange(int w,
int h)
IEncoderListeneronWaterMarkSizeChange in interface IEncoderListenerpublic VideoEncoderType getVideoPublishEncodeInfo()
public void setAbroadNetWorkStrategy(boolean flag)