音视频通话一端关闭摄像头后,另一端会卡最后一帧画面,如何让对方显示黑屏?

发布时间: 2022-03-08 14:47

回答:

一、音视频通话场景(CallKit、CallLib)

调用 RongCallClient.getInstance().setEnableLocalVideo(false); 方法来关闭摄像头

然后对端会走通话状态监听 IRongCallListener 的 onRemoteCameraDisabled 回调方法,

最后在回调方法中移除显示视图来实现黑屏的效果。

其中,移除显示视图可以是调用 ((RCRTCVideoView) localVideo).clearScreen(); 方法清空屏幕,或是隐藏 view,亦或是用其他图层盖住视频等,可由开发者自行实现,能达到黑屏的效果即可。


CallKit 通话状态监听文档: https://doc.rongcloud.cn/call/Android/5.X/callkit/integration#callback 

CallLib 通话状态监听文档: https://doc.rongcloud.cn/call/Android/5.X/calllib/control/listener 



二、音视频会议/低延迟直播场景(RTCLib)

调用 RCRTCEngine.getInstance().getDefaultVideoStream().stopCamera(); 方法来关闭摄像头

然后对端会走房间事件回调监听 IRCRTCRoomEventsListener

 的 onRemoteUserMuteVideo 的回调方法,

最后在回调方法中移除显示视图来实现黑屏的效果。

其中,移除显示视图可以是调用 ((RCRTCVideoView) localVideo).clearScreen(); 方法清空屏幕,或是隐藏 view,亦或是用其他图层盖住视频等,可由开发者自行实现,能达到黑屏的效果即可。


打开/关闭摄像头文档:https://doc.rongcloud.cn/live/Android/5.X/device/camera

IRCRTCRoomEventsListener 房间事件回调文档:https://doc.rongcloud.cn/meeting/Android/5.X/room/callback