# 媒体事件管理
# 本地媒体事件
# 本地音频状态发生改变回调
void onLocalAudioStateChanged( int state,
int error
) ;
本地音频状态发生改变回调。 本地音频的状态发生改变时(包括本地麦克风录制状态和音频编码状态),SDK 会触发该回调报告当前的本地音频状态。 在本地音频出现故障时,该回调可以帮助你了解当前音频的状态以及出现故障的原因,方便你排查问题。 注解
- 当状态为 LOCAL_AUDIO_STREAM_STATE_FAILED(3) 时,你可以在 error 参数中查看返回的错误信息。 参数
参数 | 描述 |
---|---|
stats | 当前的本地音频状态:LOCAL_AUDIO_STREAM_STATE_STOPPED(0):本地音频默认初始状态;LOCAL_AUDIO_STREAM_STATE_CAPTURING(1):本地音频录制设备启动成功;LOCAL_AUDIO_STREAM_STATE_ENCODING(2):本地音频首帧编码成功;LOCAL_AUDIO_STREAM_STATE_FAILED(3):本地音频启动失败 |
error | 本地音频出错原因:LOCAL_AUDIO_STREAM_ERROR_OK(0):本地音频状态正常;LOCAL_AUDIO_STREAM_ERROR_FAILURE(1):本地音频出错原因不明确;LOCAL_AUDIO_STREAM_ERROR_DEVICE_NO_PERMISSION(2):没有权限启动本地音频录制设备;LOCAL_AUDIO_STREAM_ERROR_DEVICE_BUSY(3):本地音频录制设备已经在使用中;LOCAL_AUDIO_STREAM_ERROR_CAPTURE_FAILURE(4):本地音频录制失败,建议你检查录制设备是否正常工作;LOCAL_AUDIO_STREAM_ERROR_ENCODE_FAILURE(5):本地音频编码失败 |
# 本地视频状态改变回调
void onLocalVideoStateChanged( int localVideoState,
int error
) ;
本地视频状态发生改变回调。 本地视频的状态发生改变时,SDK 会触发该回调返回当前的本地视频状态;当状态为 LOCAL_VIDEO_STREAM_STATE_FAILED(3) 时,你可以在 error 参数中查看返回的错误信息。 该接口在本地视频出现故障时,方便你了解当前视频的状态以及出现故障的原因,方便排查问题。
参数
参数 | 描述 |
---|---|
localVideoState | 当前的本地视频状态:LOCAL_VIDEO_STREAM_STATE_STOPPED(0):本地视频默认初始状态;LOCAL_VIDEO_STREAM_STATE_CAPTURING(1):本地视频采集设备启动成功;LOCAL_VIDEO_STREAM_STATE_ENCODING(2):本地视频首帧编码成功;LOCAL_VIDEO_STREAM_STATE_FAILED(3):本地视频启动失败 |
error | 本地视频出错原因:LOCAL_VIDEO_STREAM_ERROR_OK(0):本地视频状态正常;LOCAL_VIDEO_STREAM_ERROR_FAILURE(1):出错原因不明确;LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSION(2):没有权限启动本地视频采集设备;LOCAL_VIDEO_STREAM_ERROR_DEVICE_BUSY(3):本地视频采集设备正在使用中;LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE(4):本地视频采集失败,建议检查采集设备是否正常工作;Android 9 及以上版本,app 切后台一段时间后,系统收回相机权限;Android 6 及以上版本,如果相机被第三方应用占用,且未被及时释放。如果一段时间后,相机被释放,则 SDK 会再次出发该回调,并报告 state 为 CAPTURING,error 为 ERROR_OK.;LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURE(5):本地视频编码失败 |
# 远端媒体事件
# 远端用户音频状态已改变回调
void onRemoteAudioStateChanged( int uid,
int state,
int reason,
int elapsed
) ;
远端音频状态发生改变回调。
远端用户(通信场景)或主播(直播场景)音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
参数
uid | 发生音频状态改变的远端用户 ID |
---|---|
state | 远端音频流状态:[REMOTE_AUDIO_STATE_STOPPED(0)]:远端音频流默认初始状态。 在 REMOTE_AUDIO_REASON_LOCAL_MUTED(3)、REMOTE_AUDIO_REASON_REMOTE_MUTED(5) 或 REMOTE_AUDIO_REASON_REMOTE_OFFLINE(7) 的情况下,会报告该状态。REMOTE_AUDIO_STATE_STARTING(1):本地用户已接收远端音频首包REMOTE_AUDIO_STATE_DECODING(2):远端音频流正在解码,正常播放。在 REMOTE_AUDIO_REASON_NETWORK_RECOVERY(2)、 REMOTE_AUDIO_REASON_LOCAL_UNMUTED(4) 或 REMOTE_AUDIO_REASON_REMOTE_UNMUTED(6) 的情况下,会报告该状态REMOTE_AUDIO_STATE_FROZEN(3):远端音频流卡顿。在 REMOTE_AUDIO_REASON_NETWORK_CONGESTION(1) 的情况下,会报告该状态REMOTE_AUDIO_STATE_FAILED(4):远端音频流播放失败。在 REMOTE_AUDIO_REASON_INTERNAL(0) 的情况下,会报告该状态 |
reason | 远端音频流状态改变的具体原因:REMOTE_AUDIO_REASON_INTERNAL(0):内部原因REMOTE_AUDIO_REASON_NETWORK_CONGESTION(1):网络阻塞REMOTE_AUDIO_REASON_NETWORK_RECOVERY(2):网络恢复正常REMOTE_AUDIO_REASON_LOCAL_MUTED(3):本地用户停止接收远端音频流或本地用户禁用音频模块REMOTE_AUDIO_REASON_LOCAL_UNMUTED(4):本地用户恢复接收远端音频流或本地用户启用音频模块REMOTE_AUDIO_REASON_REMOTE_MUTED(5):远端用户停止发送音频流或远端用户禁用音频模块REMOTE_AUDIO_REASON_REMOTE_UNMUTED(6):远端用户恢复发送音频流或远端用户启用音频模块REMOTE_AUDIO_REASON_REMOTE_OFFLINE(7):远端用户离开频道 |
elapsed | 从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms |
# 远端用户视频状态已变化回调
void onRemoteVideoStateChanged( int uid,
int state,
int reason,
int elapsed
)
远端用户视频状态发生已变化回调。
参数
uid | 发生视频状态改变的远端用户 ID |
---|---|
state | 远端视频流状态:REMOTE_VIDEO_STATE_STOPPED(0):远端视频默认初始状态。在 REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED(3)、REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED(5) 或 REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE(7) 的情况下,会报告该状态。REMOTE_VIDEO_STATE_STARTING(1):本地用户已接收远端视频首包REMOTE_VIDEO_STATE_DECODING(2):远端视频流正在解码,正常播放。在 REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY(2)、REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED(4)、REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED(6) 或 REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY(9) 的情况下,会报告该状态REMOTE_VIDEO_STATE_FROZEN(3):远端视频流卡顿。在 REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION(1) 或 REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK(8) 的情况下,会报告该状态REMOTE_VIDEO_STATE_FAILED(4):远端视频流播放失败。在 REMOTE_VIDEO_STATE_REASON_INTERNAL(0) 的情况下,会报告该状态。 |
reason | 远端视频流状态改变的具体原因:REMOTE_VIDEO_STATE_REASON_INTERNAL(0):内部原因REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION(1):网络阻塞REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY(2):网络恢复正常REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED(3):本地用户停止接收远端视频流或本地用户禁用视频模块REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED(4):本地用户恢复接收远端视频流或本地用户启动视频模块REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED(5):远端用户停止发送视频流或远端用户禁用视频模块REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED(6):远端用户恢复发送视频流或远端用户启用视频模块REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE(7):远端用户离开频道REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK(8):远端视频流已回退为音频流REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY(9):回退的远端音频流恢复为视频流 |
elapsed | 从本地用户调用 joinChannel方法到发生本事件经历的时间,单位为 ms |