如果您現在使用的是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;