状态回调
简介
Pano SDK 支持回调当前网络状态和音视频收发状态,开发者可用于做相应界面展示。
各端 SDK 相关接口,请查看下列介绍:
Windows (C++)
网络状态回调
请参考 注册通知,实现 RtcEngine::Callback::onNetworkQuality(uint64_t userId, QualityRating quality)
回调方法来接收网络状态质量通知,QualityRating
表示 userId
对应用户的网络状态质量。
音视频收发状态回调
通过 RtcEngine::setMediaStatsObserver(MediaStatsObserver * observer)
方法设置观察者,MediaStatsObserver
包含多个类型的回调,例如:
onVideoSendStats (VideoSendStats &stats)
回调发送视频的统计,包括视频流标识、视频宽度、视频高度、发送帧率、发送比特率,等。onVideoRecvStats (VideoRecvStats &stats)
回调接收视频的统计,包括用户标识、视频流标识、视频宽度、视频高度、接收帧率、接收比特率,等。onAudioSendStats (AudioSendStats &stats)
回调发送音频的统计,包括发送比特率、音频输入强度级别、麦克风采集检测,等。onAudioRecvStats (AudioRecvStats &stats)
回调接收音频的统计,包括用户标识、接收比特率、音频输出强度级别,等。onScreenSendStats (ScreenSendStats &stats)
回调发送屏幕共享的统计,和发送视频的统计类似。onScreenRecvStats (ScreenRecvStats &stats)
回调接收屏幕共享的统计,和接收视频的统计类似。- 其他类型,请查看 SDK API 文档。
Android (Java)
网络状态回调
实现 RtcEngineCallback
接口的 onNetworkQuality(long userId, Constants.QualityRating quality)
回调方法来接收网络状态质量通知,QualityRating
表示 userId
对应用户的网络状态质量。
音视频收发状态回调
通过 RtcEngine
对象的 setMediaStatsObserver(RtcMediaStatsObserver observer)
方法设置观察者,RtcMediaStatsObserver
包含多个类型的回调,例如:
onVideoSendStats (RtcVideoSendStats stats)
回调发送视频的统计,包括视频流标识、视频宽度、视频高度、发送帧率、发送比特率,等。onVideoRecvStats (RtcVideoRecvStats stats)
回调接收视频的统计,包括用户标识、视频流标识、视频宽度、视频高度、接收帧率、接收比特率,等。onAudioSendStats (RtcAudioSendStats stats)
回调发送音频的统计,包括发送比特率、音频输入强度级别、麦克风采集检测,等。onAudioRecvStats (RtcAudioRecvStats stats)
回调接收音频的统计,包括用户标识、接收比特率、音频输出强度级别,等。onScreenSendStats (RtcVideoSendStats stats)
回调发送屏幕共享的统计,和发送视频的统计类似。onScreenRecvStats (RtcVideoRecvStats stats)
回调接收屏幕共享的统计,和接收视频的统计类似。- 其他类型,请查看 SDK API 文档。
iOS/macOS (Objective-C)
网络状态回调
实现 PanoRtcEngineDelegate
协议的 - onNetworkQuality:withUser:
回调方法来接收网络状态质量通知,PanoQualityRating
表示 userId
对应用户的网络状态质量。
音视频收发状态回调
实现 PanoRtcEngineDelegate
协议的以下方法来接收音视频状态回调:
- onVideoSendStats:
回调发送视频的统计,包括视频流标识、视频宽度、视频高度、发送帧率、发送比特率,等。- onVideoRecvStats:
回调接收视频的统计,包括用户标识、视频流标识、视频宽度、视频高度、接收帧率、接收比特率,等。- onAudioSendStats:
回调发送音频的统计,包括发送比特率、音频输入强度级别、麦克风采集检测,等。- onAudioRecvStats:
回调接收音频的统计,包括用户标识、接收比特率、音频输出强度级别,等。- onScreenSendStats:
回调发送屏幕共享的统计,和发送视频的统计类似。- onScreenRecvStats:
回调接收屏幕共享的统计,和接收视频的统计类似。
Web
网络状态检测
通过 RtcEngine
对象的 startNetworkTest
方法进行网络状态检测。
网络状态检测基于和服务器的连接,因此请等到 joinChannelConfirm
返回加入频道成功后再调用此接口。
如需定期获取状态,可以使用 setInterval
实现。
rtcEngine.on(PanoRtc.RtcEngine.Events.joinChannelConfirm, data => {
if (data.result == 'success') {
// 加入频道成功,设置定时器
let timerNetworkTest = setInterval(() => {
rtcEngine.startNetworkTest(obj => {
console.info('startNetworkTest: ', obj);
})
}, 5000);
}
});