产品 / 解决方案
平台 / 框架

如何监听房间内用户的麦克风和摄像头状态?

产品 / 插件:实时音视频 / 实时语音 / 低延迟直播 / 超低延迟直播

平台 / 框架:iOS / Android / macOS / Windows

更新时间:2023-03-01 19:11


简介

在某些场景中,开发者需要根据监听房间内用户的麦克风和摄像头状态来判断远端推流设备是否正常工作,以及根据相应的 state 码初步了解设备出现问题的原因。

实现方法

在监听设备状态功能之前,请确保实现基本的实时音视频功能。详情请参考:快速开始 - 实现流程

ZEGO Express SDK 提供 onRemoteMicStateUpdateonRemoteCameraStateUpdate 两个回调用于监听远端摄像头和麦克风的状态变化,通过此回调。

示例代码

// Objective-C
- (void)onRemoteMicStateUpdate:(ZegoRemoteDeviceState) state streamID:(NSString *) streamID;
- (void)onRemoteCameraStateUpdate:(ZegoRemoteDeviceState) state streamID:(NSString *) streamID;
// Java
public void onRemoteMicStateUpdate (String streamID, ZegoRemoteDeviceState state);
public void onRemoteCameraStateUpdate (String streamID, ZegoRemoteDeviceState state);
// cpp
public:
    void onRemoteMicStateUpdate(std::string streamID, ZegoRemoteDeviceState state) override;
    void onRemoteCameraStateUpdate(std::string streamID, ZegoRemoteDeviceState state) override;
// dart
ZegoExpressEngine.onRemoteMicStateUpdate = (String streamID, ZegoRemoteDeviceState state) {
  // 
};
ZegoExpressEngine.onRemoteCameraStateUpdate= (String streamID, ZegoRemoteDeviceState state) {
  // 
};
// c#
public delegate void OnRemoteMicStateUpdate(string streamID, ZegoRemoteDeviceState state);
public delegate void OnRemoteCameraStateUpdate(string streamID, ZegoRemoteDeviceState state);
// TypeScript
onRemoteMicStateUpdate?(streamID: string, state: zego.ZegoRemoteDeviceState): void
onRemoteCameraStateUpdate?(streamID: string, state: zego.ZegoRemoteDeviceState): void

注意事项

  1. 当从 CDN 地址拉流时,不会收到以上的回调
  2. 如果用户使用了自定义音频采集,不会收到 Mic 相关的回调。

API 参考

本篇目录
下载 PDF