public class VideoLiveSessionYCloud extends java.lang.Object implements IYYVideoSurfaceInfoListener, IEncoderListener, IYMFPreviewListener, ILiveSession, android.view.SurfaceHolder.Callback, CameraListener, IMediaCodecUpload, GetAnchorStatInfoInterface.IGetCurrentCameraEncodeStatInfo, GetAnchorStatInfoInterface.IGetImageFilterInfo
| Modifier and Type | Field and Description |
|---|---|
CameraCaptureFilter |
mCaptureFilter |
ClipFilter |
mCliperFilter |
VideoEncoderGroupFilter |
mEncoderGroupFilter |
VideoEndPointFilter |
mEndPointFilter |
ExternalDecoderFilter |
mExternalDecoderFilter |
VideoLiveFilterContext |
mFilterContext |
PeripheralsDecoderFilter |
mPeripheralsDecoderFilter
PeripheralsDecoderFilter -->
CameraCaptureFilter-->VideoLiveQualityFilter
-->GPUPreprocessFilter-->
ClipFilter-->
-->PreviewFilter
-->VideoEncoderGroupFilter-->TransmitUploadFilter
|
GPUPreprocessFilter |
mPreprocessFilter |
PreviewFilter |
mPreviewFilter |
YMFProcessGroupFilter |
mProcessGroupFilter |
VideoEncoderConfig |
mTmpAssignVideoEncoderConfig |
VideoEncoderConfig |
mTmpVideoEncoderConfig |
EVENT_SURFACE_AVAIBLE, EVENT_SURFACE_DESTROYED, EVENT_SURFACE_SIZE_CHANGED| Constructor and Description |
|---|
VideoLiveSessionYCloud(android.content.Context context,
int type)
默认的开播的VideoLiveSession2
|
| Modifier and Type | Method and Description |
|---|---|
void |
adjustEncoderBitrate(int bitRate) |
void |
assignEncoderConfig(VideoEncoderConfig config)
仅仅对齐开播参数,在没开始编码的时候调用,这样可以确保预览和开启编码时候的预览,裁剪的大小一致,不会跳变
|
void |
enableColorChartLive(boolean enable)
色卡开播,参数设为true时,观看端看到的是色卡,主播段不变。
|
void |
enableMirror(boolean enable)
镜像开关设置
|
void |
enablePreviewMirror(boolean enable)
预览镜像开关设置
|
FilterType |
getFilterType()
获取当前美颜算法的类型.
|
void |
initOriginDataFilter() |
boolean |
isHardwareEncoderAvailable()
获取是否允许硬编开播
|
void |
notifyCameraOpenFail(java.lang.String reason) |
void |
notifyCameraOpenSuccess() |
void |
notifyCameraPreviewParameter(int width,
int height,
int facing,
CameraInterface.CameraResolutionMode resMode) |
void |
onDualOpen(boolean flag) |
void |
onDualPictureSwitch()
双摄开播大小画面切换
|
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 |
onExternalVideoEnd()
结束外设视频流
|
int |
onGetAnchorCurrentBitRate() |
java.lang.String |
onGetAnchorCurrentDIPRate() |
int |
onGetAnchorCurrentFrameRate() |
float |
onGetBeautyLevel() |
float |
onGetFaceLiftLevel() |
boolean |
onGetHasBeauty() |
boolean |
onGetHasDynamicSticker() |
boolean |
onGetHasFaceLift() |
boolean |
onGetHasSticker() |
void |
onHardEncoderError()
硬编出错,通知上层禁用硬编
|
void |
onPeripheralsVideoConfigReceived(DecodeVideoConfig config)
视频头信息,包括高宽,sps和pps
|
void |
onPeripheralsVideoDataReceived(DecodeVideoSample sample)
收到外设的视频数据
|
void |
onPeripheralsVideoEnd()
结束外设视频流
|
void |
onRenderFirstFrame()
预览成功回调
|
void |
onSurfaceInfoEvent(int evtType,
AbstractSurfaceInfo surfaceInfo)
此函数不要做太多事情, 因为可能VideoLiveSession正在被调用StopAndRelease, 会有一些线程同步的问题.
|
void |
onTouch(android.view.MotionEvent event)
屏幕触摸事件回调
|
void |
onWaterMarkSizeChange(int w,
int h)
切换弱网之后,编码分辨率变更,需要变换水印的坐标和宽高
|
void |
pushEncodeExternalData(ExternalYYMediaSample externalYYMediaSample)
外部数据推送编码数据的接口
|
void |
pushExternalVideoDecodeInfo(ExternalDecodeInfo decodeInfo)
收到外设的视频数据
|
void |
registerCallback(PreviewFrameCallback callback) |
void |
requestIFrame()
强制编码I帧接口.
|
void |
reSetEncodingState() |
void |
reSetPreviewState() |
void |
setAbroadNetWorkStrategy(boolean flag) |
void |
setBackground(Background background) |
void |
setDeltaYYPtsMillions(long deltaPtsDts)
设置PTS同步矫正, 矫正值根据传输设置,客户端回调到sdk
|
void |
setDynamicTexture(IDynamicTexture dynamicTexture)
设置动态贴图接口.
|
void |
setEncoderConfig(VideoEncoderConfig config)
设置编码参数,此接口startEncoder在调用之前, 之后都可以使用.
|
void |
setEncoderListener(IEncoderListener listener)
设置编码的回调接口,回调事件包含编码后的视频数据, 视频质量统计数据等.
|
void |
setExternalDecodeInterface(ExternalInterface.IExternalDecode IExternalDecode)
给外部解码数据设置回调接口
|
void |
setExternalVideoInterface(ExternalInterface.IExternalCameraData IExternalCameraData)
给外部数据设置回调接口
|
void |
setFilterInfo(FilterType filterType,
java.util.Map<java.lang.String,java.lang.String> params)
STBeauty类型的美颜接口,主要是兼用4.2以下(不包括4.2)机器的美颜
|
void |
setFilterType(FilterType filterType)
设置美颜类型
|
void |
setGLManagerRunnable(java.lang.Runnable runnable)
将操作post回gl线程
|
void |
setGPUImageBeautyFilter(IGPUProcess gpuImageProcess) |
void |
setHardwareEncoderAvailable(boolean available)
设置本机型是否可以开启硬编
|
void |
setLowDelayMode(boolean enable) |
void |
setNetworkBitrateSuggest(int bitrate)
设置网络传输层建议码率接口.
|
void |
setOriginFrameToEncode(byte[] data,
int format,
int width,
int height,
int rotation,
long timestamp) |
void |
setPreviewListener(IYMFPreviewListener listener)
设置预览的回调接口
|
void |
setPreviewSurfaceView(android.view.SurfaceView view) |
void |
setResolutionModifyConfigs(java.util.List<ResolutionModifyConfig> configs,
int intervalSecs)
设置动态编码分辨率的参数集合即可.
|
void |
setScaleMode(Constant.ScaleMode scaleMode) |
void |
setTextureListener(ITextureListener listener) |
void |
setUsedTexture(boolean used) |
void |
setUserLiveConfig(YYUserLiveConfig userLiveConfig)
不频繁调用,且销毁内存不多,所以每次调用copy一个新的config,以防线程竞争.
|
void |
setVideoRenderPosition(VideoRenderPosition position)
设置视频位置信息
|
void |
setWaterMark(android.graphics.Bitmap bitmap,
int offsetX,
int offsetY)
设置水印接口.
|
void |
setWaterMark(WaterMark waterMark) |
void |
startEncoder()
开启编码接口, 如果预先没有设置编码参数, 则按照默认的编码参数进行编码, 否则按照之前设置的编码参数进行编码.
|
void |
startRvSensor()
注册旋转矢量传感器
|
void |
stopAndRelease() |
void |
stopEncoder()
停止编码接口.
|
void |
stopRvSensor()
反注册旋转矢量传感器
|
void |
surfaceChanged(android.view.SurfaceHolder holder,
int format,
int width,
int height) |
void |
surfaceCreated(android.view.SurfaceHolder holder) |
void |
surfaceDestroyed(android.view.SurfaceHolder holder) |
void |
takeScreenShot(ScreenShotCallback callback)
设置截屏回调接口.
|
void |
unregisterCallback(PreviewFrameCallback callback) |
void |
updateSurfaceViewInfo() |
public PeripheralsDecoderFilter mPeripheralsDecoderFilter
public ExternalDecoderFilter mExternalDecoderFilter
public CameraCaptureFilter mCaptureFilter
public GPUPreprocessFilter mPreprocessFilter
public YMFProcessGroupFilter mProcessGroupFilter
public ClipFilter mCliperFilter
public PreviewFilter mPreviewFilter
public VideoEncoderGroupFilter mEncoderGroupFilter
public VideoLiveFilterContext mFilterContext
public VideoEndPointFilter mEndPointFilter
public VideoEncoderConfig mTmpVideoEncoderConfig
public VideoEncoderConfig mTmpAssignVideoEncoderConfig
public VideoLiveSessionYCloud(android.content.Context context,
int type)
public void setScaleMode(Constant.ScaleMode scaleMode)
public void stopAndRelease()
stopAndRelease in interface ILiveSessionpublic void updateSurfaceViewInfo()
public void setDeltaYYPtsMillions(long deltaPtsDts)
deltaPtsDts - 单位mspublic void reSetEncodingState()
reSetEncodingState in interface CameraListenerpublic void reSetPreviewState()
public void setPreviewSurfaceView(android.view.SurfaceView view)
public void setWaterMark(WaterMark waterMark)
setWaterMark in interface IMediaCodecUploadpublic void startEncoder()
startEncoder in interface ILiveSessionstartEncoder in interface IMediaCodecUploadpublic void stopEncoder()
stopEncoder in interface ILiveSessionstopEncoder in interface IMediaCodecUploadpublic void onSurfaceInfoEvent(int evtType,
AbstractSurfaceInfo surfaceInfo)
onSurfaceInfoEvent in interface IYYVideoSurfaceInfoListenerevtType - surfaceInfo - public void setFilterInfo(FilterType filterType, java.util.Map<java.lang.String,java.lang.String> params)
美颜算法接口, 开播SDK中实现了多种美颜算法, 应用可以根据自己需要来选择.
filterType - 美颜算法的类型, 详细见 FilterTypeparams - 美颜算法参数集合, 具体的参数含义需要咨询美颜算法开发相关人员, 如果
对应的美颜算法没有参数, 则可以为nullpublic void setFilterType(FilterType filterType)
filterType - 美颜类型public FilterType getFilterType()
FilterTypepublic void setWaterMark(android.graphics.Bitmap bitmap,
int offsetX,
int offsetY)
setWaterMark in interface ILiveSessionbitmap - 水印参数, 详细见 WaterMarkpublic void setBackground(Background background)
setBackground in interface IMediaCodecUploadpublic void setDynamicTexture(IDynamicTexture dynamicTexture)
setDynamicTexture in interface ILiveSessionsetDynamicTexture in interface IMediaCodecUploaddynamicTexture - 动态贴图参数, 详细见 IDynamicTexturepublic void takeScreenShot(ScreenShotCallback callback)
takeScreenShot in interface ILiveSessiontakeScreenShot in interface IMediaCodecUploadcallback - 截屏回调接口, 详细见 ScreenShotCallbackpublic void setNetworkBitrateSuggest(int bitrate)
setNetworkBitrateSuggest in interface ILiveSessionsetNetworkBitrateSuggest in interface IMediaCodecUploadbitrate - 建议码率,单位为bps.public void setResolutionModifyConfigs(java.util.List<ResolutionModifyConfig> configs, int intervalSecs)
setResolutionModifyConfigs in interface ILiveSessionconfigs - 动态分辨率控制参数, 具体见 ResolutionModifyConfigintervalSecs - 动态调整的检测时长,也即每检测时长,做一次动态调整的判断.public void setPreviewListener(IYMFPreviewListener listener)
public void setEncoderListener(IEncoderListener listener)
setEncoderListener in interface ILiveSessionsetEncoderListener in interface IMediaCodecUploadlistener - 回调接口, 详细见 IEncoderListenerpublic void assignEncoderConfig(VideoEncoderConfig config)
config - 编码参数, 详细见 VideoEncoderConfigpublic void setEncoderConfig(VideoEncoderConfig config)
setEncoderConfig in interface ILiveSessionsetEncoderConfig in interface IMediaCodecUploadconfig - 编码参数, 详细见 VideoEncoderConfigpublic void setLowDelayMode(boolean enable)
setLowDelayMode in interface ILiveSessionpublic void adjustEncoderBitrate(int bitRate)
adjustEncoderBitrate in interface ILiveSessionpublic 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)
IEncoderListeneronEncodeFrameData in interface IEncoderListenerdata - 编码后的视频数据len - 视频数据的长度pts - 视频数据的pts, 单位是msdts - 视频数据的dts, 单位是msframeType - 视频数据的帧类型,YY系统中的帧类型取值一样.encodeType - 视频数据的编码类型,这里是开播SDK中定义的encodeType,特别提醒这里和yysdk中传输定义的encodeType有不同.public void onEncodeEncParam(java.lang.String param)
IEncoderListeneronEncodeEncParam in interface IEncoderListenerparam - 编码参数,一般用于调试打印在屏幕,或者统计等等.public void onHardEncoderError()
IEncoderListeneronHardEncoderError in interface IEncoderListenerpublic void onEncoderSwitch()
IEncoderListeneronEncoderSwitch in interface IEncoderListenerpublic void onWaterMarkSizeChange(int w,
int h)
IEncoderListeneronWaterMarkSizeChange in interface IEncoderListenerpublic void requestIFrame()
requestIFrame in interface ILiveSessionpublic void setUserLiveConfig(YYUserLiveConfig userLiveConfig)
设置直播用户的信息, 主要用于videosdk内部的数据结统计.
userLiveConfig - 主播用户相关信息,譬如说所在直播间的频道号等,如果系统没有频道号等,可以不填写.public void enableColorChartLive(boolean enable)
enable - public void notifyCameraPreviewParameter(int width,
int height,
int facing,
CameraInterface.CameraResolutionMode resMode)
notifyCameraPreviewParameter in interface CameraListenerpublic void notifyCameraOpenSuccess()
notifyCameraOpenSuccess in interface CameraListenerpublic void notifyCameraOpenFail(java.lang.String reason)
notifyCameraOpenFail in interface CameraListenerpublic void onDualOpen(boolean flag)
onDualOpen in interface CameraListenerpublic void onDualPictureSwitch()
onDualPictureSwitch in interface CameraListenerpublic void enableMirror(boolean enable)
enable - public void enablePreviewMirror(boolean enable)
enable - public void setHardwareEncoderAvailable(boolean available)
setHardwareEncoderAvailable in interface ILiveSessionavailable - true 表示可以硬编,false表示不能硬编public boolean isHardwareEncoderAvailable()
ILiveSessionisHardwareEncoderAvailable in interface ILiveSessionpublic void onPeripheralsVideoDataReceived(DecodeVideoSample sample)
onPeripheralsVideoDataReceived in interface IMediaCodecUploadsample - 视频数据结构public void onPeripheralsVideoConfigReceived(DecodeVideoConfig config)
IMediaCodecUploadonPeripheralsVideoConfigReceived in interface IMediaCodecUploadpublic void onPeripheralsVideoEnd()
onPeripheralsVideoEnd in interface IMediaCodecUploadpublic void setVideoRenderPosition(VideoRenderPosition position)
IMediaCodecUploadsetVideoRenderPosition in interface IMediaCodecUploadpublic void startRvSensor()
public void stopRvSensor()
public void onTouch(android.view.MotionEvent event)
event - public void setTextureListener(ITextureListener listener)
public void surfaceCreated(android.view.SurfaceHolder holder)
surfaceCreated in interface android.view.SurfaceHolder.Callbackpublic void surfaceChanged(android.view.SurfaceHolder holder,
int format,
int width,
int height)
surfaceChanged in interface android.view.SurfaceHolder.Callbackpublic void surfaceDestroyed(android.view.SurfaceHolder holder)
surfaceDestroyed in interface android.view.SurfaceHolder.Callbackpublic boolean onGetHasBeauty()
onGetHasBeauty in interface GetAnchorStatInfoInterface.IGetImageFilterInfopublic boolean onGetHasFaceLift()
onGetHasFaceLift in interface GetAnchorStatInfoInterface.IGetImageFilterInfopublic float onGetBeautyLevel()
onGetBeautyLevel in interface GetAnchorStatInfoInterface.IGetImageFilterInfopublic float onGetFaceLiftLevel()
onGetFaceLiftLevel in interface GetAnchorStatInfoInterface.IGetImageFilterInfopublic boolean onGetHasSticker()
onGetHasSticker in interface GetAnchorStatInfoInterface.IGetImageFilterInfopublic boolean onGetHasDynamicSticker()
onGetHasDynamicSticker in interface GetAnchorStatInfoInterface.IGetImageFilterInfopublic int onGetAnchorCurrentBitRate()
onGetAnchorCurrentBitRate in interface GetAnchorStatInfoInterface.IGetCurrentCameraEncodeStatInfopublic int onGetAnchorCurrentFrameRate()
onGetAnchorCurrentFrameRate in interface GetAnchorStatInfoInterface.IGetCurrentCameraEncodeStatInfopublic java.lang.String onGetAnchorCurrentDIPRate()
onGetAnchorCurrentDIPRate in interface GetAnchorStatInfoInterface.IGetCurrentCameraEncodeStatInfopublic void setExternalDecodeInterface(ExternalInterface.IExternalDecode IExternalDecode)
setExternalDecodeInterface in interface IMediaCodecUploadIExternalDecode - public void setExternalVideoInterface(ExternalInterface.IExternalCameraData IExternalCameraData)
setExternalVideoInterface in interface IMediaCodecUploadIExternalCameraData - public void pushEncodeExternalData(ExternalYYMediaSample externalYYMediaSample)
pushEncodeExternalData in interface IMediaCodecUploadexternalYYMediaSample - public void setGLManagerRunnable(java.lang.Runnable runnable)
setGLManagerRunnable in interface IMediaCodecUploadrunnable - public void pushExternalVideoDecodeInfo(ExternalDecodeInfo decodeInfo)
pushExternalVideoDecodeInfo in interface IMediaCodecUploaddecodeInfo - 视频相关的数据格式public void onExternalVideoEnd()
onExternalVideoEnd in interface IMediaCodecUploadpublic void setGPUImageBeautyFilter(IGPUProcess gpuImageProcess)
public void registerCallback(PreviewFrameCallback callback)
public void unregisterCallback(PreviewFrameCallback callback)
public void initOriginDataFilter()
public void setOriginFrameToEncode(byte[] data,
int format,
int width,
int height,
int rotation,
long timestamp)
public void setUsedTexture(boolean used)
public void setAbroadNetWorkStrategy(boolean flag)