本文介绍的是音视频通话 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。
文档内容是否对您有帮助?