直播
API 参考
更新时间: 2021/11/01 19:58:58
有关API的详细说明,打开index.html即可。
直播推流 Android SDK API 文档详见API文档
API概览
类别 | API名称 | 功能 |
---|---|---|
创建推流实例 | - lsMediaCapture(LsMediaCapturePara lsMediaCapturePara) | 根据LsMediaCapturePara设置SDK上下文Context以及消息回调 |
销毁推流实例 | - (void)uninitLsMediaCapture(boolean uninitNow) | 反初始化:释放资源;true:马上释放,false:等待推流结束后释放。(如推流已开始必须设置为false) |
打开视频预览 | - (void)startVideoPreview | 打开摄像头进行预览,采用SDK提供的超清、高清、标清等模式进行预览 |
打开视频预览(扩展) | - (void)startVideoPreviewEx | 预览扩展接口,如果SDK提供的模板不满足,用户可以自定义设置预览的分辨率以及帧率等参数 |
打开屏幕共享预览 | - (void)startScreenCapture | 打开屏幕共享预览,采用MediaProjection 实现屏幕捕捉 |
切换分辨率 | - (void)changeCaptureFormat | 切换SDK支持的模板分辨率 |
切换分辨率(扩展) | - (void)changeCaptureFormatEx | 切换用户自定义分辨率 |
关闭视频预览 | - (void)stopVideoPreview | 关闭摄像头 |
销毁视频预览 | - (void)destroyVideoPreview | 释放摄像头以及预览显示View等资源 |
初始化推流 | - (boolean)initLiveStream | 设置推流地址以及推流类型等参数 |
开始推流 | - (void)startLiveStreaming | 开始推流,若失败,会在创建实例中的消息回调中返回具体错误码 |
结束推流 | - (void)stopLiveStreaming | 结束推流 |
暂停视频推流 | - (void)pauseVideoLiveStream | 暂停视频推流,不发送视频数据 |
恢复视频推流 | - (void)resumeVideoLiveStream | 恢复视频推流 |
暂停音频推流 | - (void)pauseAudioLiveStream | 暂停音频推流,发送静音数据 |
恢复音频推流 | - (void)resumeAudioLiveStream | 恢复音频推流 |
视频切后台 | - (void)backgroundVideoEncode | 视频推流切换到后台的处理,关闭相机,发送最后一帧画面 |
视频恢复前台 | - (void)resumeVideoEncode | 重新打开相机并推送视频数据 |
音频切后台 | - (void)backgroundAudioEncode | 发送静音帧 |
音频恢复前台 | - (void)resumeAudioEncode | 重新发送音频 |
开始伴音 | - (boolean)startPlayMusic | 支持是否循环播放 |
暂停伴音 | - (boolean)pausePlayMusic | 暂停伴音 |
恢复播放 | - (boolean)resumePlayMusic | 恢复伴音 |
结束伴音 | - (boolean)stopPlayMusic | 结束伴音 |
摄像头切换 | - (void)switchCamera | 前后摄像头动态切换 |
闪光灯开关 | - (void)setCameraFlashPara | 开关闪光灯(若支持) |
摄像头缩放 | - (void)setCameraZoomPara | 设置摄像头缩放比例 |
摄像头曝光度 | - (void)setExposureCompensation | 设置摄像头曝光强度 |
摄像头对焦 | - (void)setCameraFocus | 设置摄像头全屏对焦 |
摄像头自动对焦 | - (void) setCameraAutoFocus | true:自动对焦,false:手动对焦,默认自动对焦 |
横竖屏切换 | - (void)onConfigurationChanged | 通知SDK发送了横竖屏切换,SDK重新计算宽高 |
设置水印 | - (void)setWaterMarkPara | 设置水印,一般用作视频版权logo显示 |
水印是否本地显示 | - (void)setWaterPreview | 设置水印是否本地显示(主播端),默认显示 |
动态水印 | - (void)setDynamicWaterMarkPara | 动态水印,一般用作视频中广告显示 |
动态水印是否本地显示 | - (void)setDynamicWaterPreview | 设置动态水印是否本地显示(主播端),默认显示 |
设置涂鸦 | - (void)setGraffitiPara | 涂鸦,可以中推流过程中实时变化 |
涂鸦是否本地显示 | - (void)setGraffitiPreview | 设置涂鸦是否本地显示(主播端),默认显示 |
摄像头采集数据回调 | - (void)setCaptureRawDataCB | 用于用户集成第三方美颜滤镜使用,SDK已在该接口上创建了openGLContext |
post到openGL线程 | - (void)postOnGLThread | 用于第三方滤镜的部分必须在openGL线程上调用的接口使用 |
麦克风采集数据回调 | - (void)setAudioRawDataCB | 用于用户进行降噪等音频处理 |
设置数据源类型 | - (void)setSourceType | SDK:SDK负责采集 CustomMode:用户自定义采集 |
自定义YUV数据 | - (void)sendCustomYUVData | SDK支持用户自行采集摄像头等设备的YUV输入给SDK进行发送 |
自定义PCM数据 | - (void)sendCustomPCMData | SDK支持用户自行采集麦克风等设备的PCM输入给SDK进行发送 |
设置观众端镜像 | - (void)setVideoMirror | 直播过程中,开关观众端镜像效果(只对前置摄像头有效) |
设置主播端镜像 | - (void)setPreviewMirror | 直播过程中,开关主播端镜像效果(只对前置摄像头有效) |
设置滤镜类型 | - (void)setFilterType | 干净、自然、健康、复古等滤镜 |
设置滤镜强度 | - (void)setFilterStrength | (0 - 1) |
设置磨皮强度 | - (void)setBeautyLevel | (0 - 5) |
截图 | - (void)enableScreenShot | 对当前预览画面进行截图 |
开始测速 | - (void)startSpeedCalc | 支持直播开始前测速,选择最优链路推流 |
结束测速 | - (void)stopSpeedCalc | 结束此次测速 |
发送自定义数据 | - (int)sendCustomData | 数据随视频画面一起发送 |
总体参数说明
SDK实例参数说明
SDK实例参数说明LsMediaCapturePara
参数 | 类型 | 说明 |
---|---|---|
setContext | Context | 设置SDK上下文,建议使用ApplicationContext |
setMessageHandler | lsMessageHandler | 设置SDK消息回调接口 |
setLogLevel | lsLogUtil.LogLevel | 设置日志级别(info、warn、error) |
setUploadLog | boolean | 设置是否上传日志 |
初始化推流参数说明LiveStreamingPara
参数 | 类型 | 说明 |
---|---|---|
setStreamType | StreamType | AUDIO:但音频,VIDEO:单视频,AV:音视频双流 |
setFormatType | FormatType | MP4:MP4纯录制,RTMP:RTMP 推流,RTMP_AND_MP4:边推RTMP 边录制MP4 |
setRecordPath | String | 设置本地录制地址,FormatType为MP4或RTMP_AND_MP4有效 |
setQosOn | boolean | true:开启 false:关闭,默认开启Qos |
setAutoRecord | boolean | 当formatType为MP4或RTMP_AND_MP4是否推流开始就自动开始录制,默认自动在上述两种模式下推流一开始就录制,只有需要推流与录制不同时进行的用户才需要关心,正常情况下,用户无需关心 |
setSyncTimestamp(syncTimestamp,absoluteTime) | boolean | syncTimestamp true:发送同步时间戳 false:不发送,默认不发送。 absoluteTime true:绝对时间(unix时间),false:相对于推流的时间(从0开始) |
setStreamTimestampPassthrough | boolean | true:网易云信透传时间戳 false:不透传,默认不透传 |
预览频参数说明
参数 | 类型 | 说明 |
---|---|---|
videoView | NeteaseView | SDK提供的预览显示View,用户可以布局到自己的APP中 |
frontCamera | boolean | 是否默认前置摄像头 |
filter | boolean | 是否使用SDK内置滤镜 |
quality | VideoQuality | MEDIUM:标清 480360,HIGH:高清 640480,SUPER:超清 960540,SUPER_HIGH:超高清 1280720 |
scale_16x9 | boolean | 是否按16:9宽高比例 |
统计信息参数说明Statistics
参数 | 类型 | 说明 |
---|---|---|
videoRealSendBitRate | int | 视频发送码率 |
audioRealSendBitRate | int | 音频发送码率 |
videoEncodeFrameRate | int | 视频编码帧率 |
videoEncodeBitRate | int | 视频编码码率 |
videoEncodeWidth | int | 视频编码宽 |
videoEncodeHeight | int | 视频编码码高 |
videoEncodeTime | int | 视频编码一帧的时间 |
audioEncodeBitRate | int | 音频编码码率 |
videoSetBitRate | int | 设置的视频码率 |
videoSetWidth | int | 设置的分辨率宽 |
videoSetHeight | int | 设置的分辨率高 |
networkLevel | int | 网络状况 1: 好,2:一般,3:差,4:未知 |
videoSendBufferQueueCount | int | 视频发送缓存队列当前大小 |
枚举值参数说明
推流类型StreamType参数说明
参数 | 说明 |
---|---|
AUDIO | 单音频 |
VIDEO | 单视频 |
AV | 音视频双流 |
推流模式FormatType参数说明
参数 | 说明 |
---|---|
MP4 | MP4纯录制 |
RTMP | RTMP 推流 |
RTMP_AND_MP4 | 边推RTMP 边录制MP4 |
输入源SourceType参数说明
参数 | 说明 |
---|---|
SDK | SDK负责采集 |
CustomAV | 自定义采集音视频 |
CustomAudio | 自定义采集音频 |
CustomVideo | 自定义采集视频 |
视频分辨率VideoQuality参数说明
参数 | 说明 |
---|---|
MEDIUM | 标清 480*360 |
HIGH | 高清 640*480 |
SUPER | 超清 960*540 |
SUPER_HIGH | 超高清 1280*720 |
水印位置VideoEffect.Rect参数说明
参数 | 说明 |
---|---|
leftTop | 左上角 |
leftBottom | 左下角 |
rightTop | 右上角 |
rightBottom | 右下角 |
center | 中间 |
滤镜类型VideoEffect.FilterType参数说明
参数 | 说明 |
---|---|
none | 无滤镜 |
clean | 干净 |
fairytale | 童话 |
nature | 自然 |
healthy | 健康 |
tender | 温柔 |
whiten | 美白 |
SDK消息回调具体状态码
public static final int MSG_INIT_LIVESTREAMING_ERROR = 0;//初始化直播出错
public static final int MSG_INIT_LIVESTREAMING_VIDEO_ERROR = 1; //初始化视频直播出错
public static final int MSG_INIT_LIVESTREAMING_AUDIO_ERROR = 2; //初始化音频直播出错
public static final int MSG_START_LIVESTREAMING_ERROR = 3;//开始直播出错
public static final int MSG_STOP_LIVESTREAMING_ERROR = 4;//停止直播出错
public static final int MSG_AUDIO_PROCESS_ERROR = 5;//音频编码打包出错
public static final int MSG_VIDEO_PROCESS_ERROR = 6; //视频编码打包出错
public static final int MSG_START_PREVIEW_ERROR = 7;//打开视频预览失败
public static final int MSG_RTMP_URL_ERROR = 8; //RTMP URL连接出错,会进一步调用网络信息报警service,弹出悬浮窗
public static final int MSG_URL_NOT_AUTH = 9; //RTMP URL非法
public static final int MSG_SEND_STATICS_LOG_ERROR = 10; //发送统计日志出错
public static final int MSG_SEND_HEARTBEAT_LOG_ERROR = 11;//发送心跳日志出错
public static final int MSG_AUDIO_RECORD_ERROR = 12;//音频录制权限打开失败
public static final int MSG_AUDIO_SAMPLE_RATE_NOT_SUPPORT_ERROR = 13;//设置的音频采样率不支持
public static final int MSG_AUDIO_PARAMETER_NOT_SUPPORT_BY_HARDWARE_ERROR = 14;//设置的音频硬件编码参数不支持
public static final int MSG_NEW_AUDIORECORD_INSTANCE_ERROR = 15;//音频采集实例创建失败
public static final int MSG_AUDIO_START_RECORDING_ERROR = 16;//音频采集失败
public static final int MSG_QOS_TO_STOP_LIVESTREAMING = 17;//网络QoS较差
public static final int MSG_HW_VIDEO_PACKET_ERROR = 18; //视频硬件编码出错
public static final int MSG_WATERMARK_INIT_ERROR = 19; //视频水印初始化出错
public static final int MSG_WATERMARK_PIC_OUT_OF_VIDEO_ERROR = 20; //视频水印超出原始视频
public static final int MSG_WATERMARK_PARA_ERROR = 21; //视频水印参数出错
public static final int MSG_CAMERA_PREVIEW_SIZE_NOT_SUPPORT_ERROR = 22; //摄像头不支持设置的preview size
public static final int MSG_START_PREVIEW_FINISHED = 23; //开始preview完成
public static final int MSG_START_LIVESTREAMING_FINISHED = 24; //开始直播完成
public static final int MSG_STOP_LIVESTREAMING_FINISHED = 25; //停止直播完成
public static final int MSG_STOP_VIDEO_CAPTURE_FINISHED = 26; //停止视频采集完成
public static final int MSG_STOP_AUDIO_CAPTURE_FINISHED = 28; //停止音频采集完成
public static final int MSG_SWITCH_CAMERA_FINISHED = 30; //切换摄像头完毕
public static final int MSG_SEND_STATICS_LOG_FINISHED = 31; //发送统计信息完毕
public static final int MSG_SERVER_COMMAND_STOP_LIVESTREAMING = 32; //服务器下发停止直播的命令
public static final int MSG_SEND_HEARTBEAT_LOG_FINISHED = 33; //发送心跳信息完毕
public static final int MSG_CAMERA_NOT_SUPPORT_FLASH = 34; //用户所设置的采集分辨率,摄像头并不支持
public static final int MSG_GET_STATICS_INFO = 35; //获得统计信息完毕
public static final int MSG_BAD_NETWORK_DETECT = 36; //连续一分钟视频帧率和码率都是0的消息
public static final int MSG_SCREENSHOT_FINISHED = 37; //直播中视频截图完成消息
public static final int MSG_SET_CAMERA_ID_ERROR = 38; //设置camera id出错(单摄像头设备常见)
public static final int MSG_SET_GRAFFITI_ERROR = 39; //设置视频涂鸦出错
public static final int MSG_MIX_AUDIO_FINISHED = 40: //伴音一首MP3文件结束
public static final int MSG_URL_FORMAT_NOT_RIGHT = 41: //推流URL格式不正确(例如使用拉流url进行推流)
public static final int MSG_URL_IS_EMPTY = 42: //推流URL为空
public static final int MSG_VIDEO_CROP_ERROR = 43; //视频剪裁失败
public static final int MSG_SPEED_CALC_SUCCESS = 44; //测速成功
public static final int MSG_SPEED_CALC_FAIL = 45; //测速失败
同时,需要开发者继承如下接口,处理SDK抛出的事件。
handleMessage(int msg, Object object);
此文档是否对你有帮助?
有帮助
我要吐槽