如果您现在使用的是V4.0.2版本的Android直播推流SDK,想要升级到V4.1.0及以上版本时,可参考本文步骤进行升级。
前提条件
请下载最新版本的直播推流SDK。
新版直播推流SDK,请参见SDK下载。
升级步骤
从项目中移除SDK V4.0.2相关类库和资源文件,添加V4.1.0及以上版本相关类库和资源文件,排查并更新相关API和推流主流程接口。
核心接口对比
基础接口
V4.0.2
V4.1.0及以上版本
描述
getSdkVersion
getSdkVersion
获取版本号。
create
init
创建推流实例。
destroy
destroy
销毁推流。
setStatusCallback
setLivePushInfoListener
设置推流状态相关回调。
setNetworkCallback
setLivePushNetworkListener
设置推流网络状态相关回调。
setLogDirPath
setLogDirPath
设置SDK日志文件保存路径。
如需调用,请在调用所有API之前先调用此接口,避免日志出现丢失,同时保证指定的目录已存在且可写入。
setLogLevel
setLogLevel
设置日志输出级别。
推流基础接口
V4.0.2
V4.1.0及以上版本
描述
startPreview
startPreview
开始预览(主播端接口)。
stopPreview
stopPreview
停止预览(主播端接口)。
pausePush
pause
暂停摄像头采集并进入垫片推流状态(仅支持RTMP模式推流)。需要先调用startPush后才可以调用pausePush,否则调用顺序会出错。
resumePush
resume()
恢复摄像头采集并结束垫片推流状态(仅支持RTMP模式推流)。需要先调用pausePush后才可以调用resumePush,否则调用顺序会出错。
startPush
startPush
开始推流。
stopPush
stopPush
停止推流。
isPublishing
isPublishing
查询是否正在推流。
getPublishUrl
getPushUrl
获取当前推流的地址。
视频相关接口
V4.0.2
V4.1.0及以上版本
描述
setPreviewMode
setPreviewMode
设置预览模式。
isAudioOnly
isAudioOnly
查询是否纯音频推流。
switchCamera
switchCamera
切换前后摄像头。
setCameraZoom
setCameraZoom
设置摄像头缩放及是否允许闪光灯。
isCameraExposurePointSupported
setExposureCompensation
摄像头是否支持设置曝光区域。
setCameraFocusPoint
setLiveCameraFocus
设置摄像头聚焦。
音频相关接口
V4.0.2
V4.1.0及以上版本
描述
setMute
setMute
设置本地音频采集是否为静音帧。
isAudioOnly
isAudioOnly
查询是否纯音频推流。
enableEarBack
setBGMEarsBack
启用耳返。建议在插入耳机后开启耳返,否则可能会引入回声。
playBGM
startBGMAsync
播放背景音乐。
stopBGM
stopBGM
停止播放背景音乐。
pauseBGM
pauseBGM
暂停播放背景音乐。
resumeBGM
resumeBGM
恢复播放背景音乐。
setBGMVolume
setBGMVolume
设置背景音乐音量。
推流主流程接口变更
创建Engine。
创建AliLiveEngine(V4.0.2)
V4.1.0及以上版本改为:创建AlivcLivePusher
//创建RTMP相关配置对象 AliLiveRTMPConfig rtmpConfig = new AliLiveRTMPConfig(); //初始化码率配置 rtmpConfig.videoInitBitrate = 1000; rtmpConfig.videoTargetBitrate = 1500; rtmpConfig.videoMinBitrate = 600; //创建直播推流配置 AliLiveConfig mAliLiveConfig = new AliLiveConfig(rtmpConfig); //初始化分辨率、帧率、是否开启高清预览、暂停后默认显示图片 mAliLiveConfig.videoFPS = 20; mAliLiveConfig.videoPushProfile = AliLiveConstants.AliLiveVideoPushProfile.AliLiveVideoProfile_540P; mAliLiveConfig.enableHighDefPreview = false; mAliLiveConfig.pauseImage = bitmap; mAliLiveConfig.accountId = ""; AliLiveEngine mAliLiveEngine = AliLiveEngine.create(PushActivity.this, mAliLiveConfig);
//初始化推流配置类 AlivcLivePushConfig mAlivcLivePushConfig = new AlivcLivePushConfig(); //初始化分辨率,分辨率540P,最大支持720P mAlivcLivePushConfig.setResolution(AlivcResolutionEnum.RESOLUTION_540P); //初始化帧率,建议用户使用20fps mAlivcLivePushConfig.setFps(AlivcFpsEnum.FPS_20); //打开码率自适应,默认为true mAlivcLivePushConfig.setEnableBitrateControl(true); //默认为竖屏,可设置home键向左或向右横屏。 mAlivcLivePushConfig.setPreviewOrientation(AlivcPreviewOrientationEnum.ORIENTATION_PORTRAIT); //设置音频编码模式 mAlivcLivePushConfig.setAudioProfile(AlivcAudioAACProfileEnum.AlivcAudioAACProfileEnum.AAC_LC); AlivcLivePusher mAlivcLivePusher = new AlivcLivePusher();mAlivcLivePusher.init(mContext, mAlivcLivePushConfig);
创建预览。
重要开启预览和停止预览接口需要成对调用,示例:
startPreview
和stopPreview
;startPreviewAysnc
和stopPreviewAysnc
。V4.0.2
V4.1.0及以上版本
//创建预览显示窗口 AliLiveRenderView mAliLiveRenderView = mAliLiveEngine.createRenderView(false); //添加预览显示窗口到布局中 addSubView(mAliLiveRenderView); //设置预览显示模式 mAliLiveEngine.setPreviewMode(AliLiveRenderModeAuto, AliLiveRenderMirrorModeOnlyFront); //开启预览 mAliLiveEngine.startPreview(mAliLiveRenderView);
livePusher对象初始化完成之后,可以进行开始预览操作。预览时需要传入摄像头预览的显示SurfaceView,示例代码如下:
//开启预览,也可根据需求调用异步接口startPreviewAysnc来实现 mAlivcLivePusher.startPreview(mSurfaceView)
开始推流。
V4.0.2
V4.1.0及以上版本
mAliLiveEngine.startPush(mPushUrl);
mAlivcLivePusher.startPush(mPushUrl);
停止推流。
V4.0.2
V4.1.0及以上版本
//停止预览 mAliLiveEngine.stopPreview(); //停止推流 mAliLiveEngine.stopPush(); //销毁liveEngine mAliLiveEngine.destroy(); mAliLiveEngine = null;
//停止预览 mAliLivePusher.stopPreview(); //停止推流 mAliLivePusher.stopPush(); //销毁AliLivePushe mAliLivePusher.destroy(); mAliLivePusher = null;