近日,发现有较多朋友反馈在使用AnyChat的音视频解决方案,特别是在将标准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中都有打开远程音视频的操作,那么都需要调用上面的代码)
时间: 2024-11-10 14:56:48