首先,确保您的视频通话房间的频道模式是直播模式(live-broadcasting),而不是通信模式(communication)。然后,检查您的代码是否正确设置了远程视频视图的容器和尺寸。最后,尝试调用 Agora SDK 的 setupRemoteVideo
方法,将远程用户的视频流和显示视图绑定起来。
以下是可能有用的示例代码,假设您有一个用于显示远程视频的 remoteVideoContainer
容器:
// 设置远程视频显示视图的大小和容器
private void setupRemoteVideo(int uid) {
int count = remoteVideoContainer.getChildCount();
View view = null;
for (int i = 0; i < count; i++) {
View v = remoteVideoContainer.getChildAt(i);
if (v.getTag() instanceof Integer && ((Integer) v.getTag()).intValue() == uid) {
view = v;
}
}
if (view != null) {
remoteVideoContainer.removeView(view);
}
SurfaceView surfaceView = RtcEngine.CreateRendererView(getBaseContext());
remoteVideoContainer.addView(surfaceView);
agoraRtcEngine.setupRemoteVideo(new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_HIDDEN, uid));
}
此代码将迭代远程视频容器中的子视图,找到与给定用户 ID 匹配的子视图,并在其中创建一个 SurfaceView
。随后,远程视频容器将添加这个 SurfaceView
并绑定到远程用户的视频流上。