将标准demo视频源码移植到工程中常见问题和解决方案

近日,有很多客户反馈将标准android demo的VideoActivity视频部分代码移植到自己的工程中遇到本地视频黑屏或者远程视频显示不了的问题,这里对这些问题做汇总说明,并给出解决方案。

1、本地视频黑屏、不显示
问题可能原因:没有设置音视频参数,没有使用Java采集模式
解决方法:将标准demo里面hallactivity类中的ApplyVideoConfig函数移植到工程中,在初始化SDK之后调用,如下面所示

  • //初始化SDK
  • anychat.InitSDK(android.os.Build.VERSION.SDK_INT, 0);
  • //设置音视频参数
  • ApplyVideoConfig();
  • 复制代码

    (注:需要在初始化后设置参数才有效)

    2、本地视频可以显示,远程视频黑屏、不显示

    问题可能原因:没有将远程视频绑定surfaceview
    解决方法:在请求远程视频操作之前调用绑定的代码,如下面所示

  • // 如果是采用Java视频显示,则需要设置Surface的CallBack
  •   if(AnyChatCoreSDK.GetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL) == AnyChatDefine.VIDEOSHOW_DRIVER_JAVA) {
  •   int index =     anychat.mVideoHelper.bindVideo(otherView.getHolder());
  •   anychat.mVideoHelper.SetVideoUser(index, userID);
  •   }
  • //请求远程视频
  •   anychat.UserCameraControl(userID, 1);
  •   anychat.UserSpeakControl(userID, 1);
  • 复制代码

    (注:如果请求远程视频有多处地方,都需要调用这段代码。如在OnAnyChatOnlineUserMessage和OnAnyChatUserAtRoomMessage中都有打开远程音视频的操作,那么都需要调用上面的代码)