本文介紹的是音視頻通話 API 在 Android 中的進階功能。
設置音視頻通話或純音頻通話
設置純音頻通話,在 初始化 engine 時,按如下方法配置 publishConfig
:
publishConfig = new PublishConfig();
純音頻通話
publishConfig.videoSource = VIDEO_SOURCE_NULL; publishConfig.audioSource = AUDIO_SOURCE_MIC;
視頻通話
publishConfig.videoSource = VIDEO_SOURCE_CAMERA; publishConfig.audioSource = AUDIO_SOURCE_MIC;
動態調整分辨率
在通話成功建立后,可按如下方法動態調整本端發送的分辨率:
public void updateVideoProfile( VideoProfile videoProfile, int maxBitrate )
其中:
videoProfile
設置為新配置的分辨率配置。maxBitrate
設置為新配置的碼率,0
為使用默認值。
通話質量監控
在通話成功建立后,監聽以下兩個回調,可以實時獲取當前視頻通話質量:
void onStatisticDebugInfo( StatisticInfoForDebug infoForDebug, FeedInfo feedInfo ); //獲取通話過程調試信息
void onRealTimeStatisticInfo( RealTimeStatisticReport report, FeedInfo feedInfo ); //獲取實時監控信息
其中 feedInfo
為對應流的信息,包括對端和本端。
網絡變化監控
在通話成功建立后,監聽以下回調,獲取帶寬信息:
void onBandwidthImportanceChangeNotify( boolean isLow, double currentBandwidth, FeedInfo feedInfo ); //帶寬不足通知
帶寬過低會通過 isLow
通知,如果帶寬過低,可能會斷開或者通話質量差。
屏幕共享
開啟屏幕共享功能,按如下設置后,可實現在視頻通話的同時共享屏幕。
在 初始化 engine 時,不能配置自動發布,但是可以配置自動訂閱。即:
rtcEngine.setAutoPublishSubscribe( autoPublish, autoSubscribe );
其中:
autoPublish
必須為false
。autoSubscribe
無特殊限制。
初始化后,在 創建或加入房間 后,調用:
publishConfig = new PublishConfig(); publishConfig.videoSource = VIDEO_SOURCE_SCREEN; rtcEngine.publish( publishConfig );
截屏功能
在通話建立后,需要截屏,可以通過以下方法進行截屏:
public void snapshot( FeedInfo info )
其中 feedInfo
為對應截屏的流信息。
截屏結果通過以下方法進行回調:
void onSnapShotComplete( Bitmap image, FeedInfo feedInfo ); //截屏圖像回調
自定義推流
開啟自定義推流。
與屏幕共享相同,在 初始化 engine 時,不能配置自動發布,但是可以配置自動訂閱。即:
rtcEngine.setAutoPublishSubscribe( autoPublish, autoSubscribe );
其中:
autoPublish
必須為false
。autoSubscribe
無特殊限制。
在 創建或加入房間 后,調用:
publishConfig = new PublishConfig(); publishConfig.videoSource = VIDEO_SOURCE_CUSTOM; rtcEngine.publish( publishConfig );
在發布成功之后,通過以下方法的結果不斷的輸入圖像數據:
public void pushCustomVideoData(byte[] bytes, int width, int height, int rotation ) //自定義推流數據,目前僅支持 nv21 格式數據
本地預覽
如果需要在未進入視頻通話時,提前開啟預覽,可以在 初始化 engine 后調用以下方法開啟攝像頭預覽:
public void startCameraPreview()
預覽的 view
可以參考 監聽本端和對端的 view。
文檔內容是否對您有幫助?