性能检测
简介
Pano SDK 支持对移动端设备进行性能检测,以判断设备可以编码哪些质量的视频。建议开发者根据性能检测结果设置匹配的分辨率档位,例如对于老旧的设备应设置较低的分辨率。
各端 SDK 相关接口,请查看下列介绍:
iOS (Objective-C)
加入频道成功后,通过 PanoRtcEngineKit
对象的 - queryDeviceRating
方法进行性能检测,将返回设备评分值 PanoQualityRating
。
PanoVideoProfileType maxResolution; // 分辨率档位
- (void)onChannelJoinConfirm:(PanoResult)result {
// 设备评分只在频道加入成功后才有效
if(kPanoResultOK == result){
PanoDeviceRating deviceRating = [_engineKit queryDeviceRating]; // 进行性能检测
switch (deviceRating) {
case kPanoQualityUnavailable: // 设备评分不可用
case kPanoQualityVeryBad: // 设备性能非常差
maxResolution = kPanoProfileNone; // 建议关闭视频
break;
case kPanoQualityBad: // 设备性能比较差
maxResolution = kPanoProfileLow; // 建议使用低档分辨率(320*180或320*240)
break;
case kPanoQualityPoor: // 设备性能一般
maxResolution = kPanoProfileStandard; // 建议使用标准档分辨率(640*360或640*480)
break;
case kPanoQualityGood: // 设备性能较好
maxResolution = kPanoProfileHD720P; // 可以使用高清分辨率(1280*720)
break;
case kPanoQualityExcellent: // 设备性能非常好
// 可以使用高清分辨率(1280*720)或全高清分辨率(1920*1080)
maxResolution = kPanoProfileHD720P;
break;
}
// 根据 maxResolution 配置适当的分辨率,再调用 - startVideoWithView:config:
// 或 - startVideoWithDelegate:profile: 方法开启视频
}
}
Android (Java)
加入频道成功后,通过 RtcEngine
对象的 queryDeviceRating
方法进行性能检测,将返回设备评分值 DeviceRating
。
Constants.VideoProfileType mLocalProfile; // 分辨率档位
public void onChannelJoinConfirm(Constants.QResult result) {
// 设备评分只在频道加入成功后才有效
if (result == Constants.QResult.OK) {
Constants.DeviceRating mDeviceRating = mRtcEngine.queryDeviceRating(); // 进行性能检测
switch (mDeviceRating){
case Unavailable: // 设备评分不可用
case VeryBad: // 设备性能非常差
mLocalProfile = null; // 建议关闭视频
break;
case Bad: // 设备性能比较差
mLocalProfile = Low; // 建议使用低档分辨率(320*180或320*240)
break;
case Poor: // 设备性能一般
mLocalProfile = Standard; // 建议使用标准档分辨率(640*360或640*480)
break;
case Good: // 设备性能较好
mLocalProfile = HD720P; // 可以使用高清分辨率(1280*720)
break;
case Excellent: // 设备性能非常好
mLocalProfile = HD720P; // 可以使用高清分辨率(1280*720)或全高清分辨率(1920*1080)
break;
}
// 根据 mLocalProfile 配置适当的分辨率,再调用 startVideo 开启视频
}
}