全部产品
云市场
云游戏

Android 进阶功能

更新时间:2020-07-24 10:44:06

设置音视频通话或纯音频通话

设置纯音频通话,在 初始化 engine 时,按如下方法配置 publishConfig

  1. publishConfig = new PublishConfig();
  • 纯音频通话
    1. publishConfig.videoSource = VIDEO_SOURCE_NULL;
    2. publishConfig.audioSource = AUDIO_SOURCE_MIC;
  • 视频通话
    1. publishConfig.videoSource = VIDEO_SOURCE_CAMERA;
    2. publishConfig.audioSource = AUDIO_SOURCE_MIC;

动态调整分辨率

在通话成功建立后,可按如下方法动态调整本端发送的分辨率:

  1. public void updateVideoProfile( VideoProfile videoProfile, int maxBitrate )

其中:

  • videoProfile 设置为新配置的分辨率配置。
  • maxBitrate 设置为新配置的码率,0 为使用默认值。

通话质量监控

在通话成功建立后,监听以下两个回调,可以实时获取当前视频通话质量:

  1. void onStatisticDebugInfo( StatisticInfoForDebug infoForDebug, FeedInfo feedInfo ); //获取通话过程调试信息
  2. void onRealTimeStatisticInfo( RealTimeStatisticReport report, FeedInfo feedInfo ); //获取实时监控信息

其中 feedInfo 为对应流的信息,包括对端和本端。

网络变化监控

在通话成功建立后,监听以下回调,获取带宽信息:

  1. void onBandwidthImportanceChangeNotify( boolean isLow, double currentBandwidth, FeedInfo feedInfo ); //带宽不足通知

带宽过低会通过 isLow 通知,如果带宽过低,可能会断开或者通过质量差。

屏幕共享

开启屏幕共享功能。

  1. 初始化 engine 时,不能配置自动发布,但是可以配置自动订阅。即:
    1. rtcEngine.setAutoPublishSubscribe( autoPublish, autoSubscribe );
    其中:
    • autoPublish 必须为 false。
    • autoSubscribe 无特殊限制。
  2. 初始化后,在 创建或加入房间 后,调用:
    1. publishConfig = new PublishConfig();
    2. publishConfig.videoSource = VIDEO_SOURCE_SCREEN;
    3. rtcEngine.publish( publishConfig );

截屏功能

在通话建立后,需要截屏,可以通过以下方法进行截屏:

  1. public void snapshot( FeedInfo info )

其中 feedInfo 为对应截屏的流信息。

截屏结果通过以下方法进行回调:

  1. void onSnapShotComplete( Bitmap image, FeedInfo feedInfo ); //截屏图像回调

自定义推流

开启自定推流。

  1. 与屏幕共享相同,在 初始化 engine 时,不能配置自动发布,但是可以配置自动订阅。即:
    1. rtcEngine.setAutoPublishSubscribe( autoPublish, autoSubscribe );
    其中:
    • autoPublish 必须为 false
    • autoSubscribe 无特殊限制。
  2. 创建或加入房间 后,调用:
    1. publishConfig = new PublishConfig();
    2. publishConfig.videoSource = VIDEO_SOURCE_CUSTOM;
    3. rtcEngine.publish( publishConfig );
  3. 在发布成功之后,通过以下方法的结果不断的输入图像数据:
    1. public void pushCustomVideoData(byte[] bytes, int width, int height, int rotation ) //自定义推流数据,目前仅支持 nv21 格式数据

本地预览

如果需要在未进入视频通话时,提前开启预览,可以在 初始化 engine 后调用以下方法开启摄像头预览:

  1. public void startCameraPreview()

预览的 view 可以参考 监听本端和对端的 view