设备诊断
简介
Pano 桌面端和浏览器 SDK 支持设备测试功能,可用于对视频采集设备、音频录制和播放设备进行诊断。
SDK 相关接口,请查看下列介绍:
Windows (C++)
视频采集设备测试
请查看 快速接入 文档的章节:获取视频采集设备 和 本地预览,通过预览视频采集画面测试其工作情况。
音频录制和播放设备测试
通过 RtcEngine
实例的 getAudioDeviceManager
方法获取音频设备管理器(AudioDeviceManager
)。
- 通过其
enumerateRecordDevices
方法枚举音频录制设备,enumeratePlayoutDevices
方法枚举音频播放设备。 - 通过其
startDeviceTest
方法进行环回测试(将采集的声音通过本地播放出来),通过stopDeviceTest
方法停止该测试。 - 通过其
startRecordDeviceTest
方法测试音频录制设备,通过stopRecordDeviceTest
方法停止该测试。 - 通过其
startPlayoutDeviceTest
方法测试音频播放设备(需要通过filename
参数传入测试用的本地音频文件的完整路径,支持的音频文件格式:mp3, aac, wav),通过stopPlayoutDeviceTest
方法停止该测试。 - 通过其
getTestRecordingLevel
方法获取测试期间的音频录制强度值(取值范围:0 - 32767),用于展示录制强度指示条。 - 通过其
getTestPlayoutLevel
方法获取测试期间的音频播放强度值(取值范围:0 - 32767),用于展示播放强度指示条。
可以在加入频道前进行测试,也可以在加入频道后测试,但是除上述接口在加入频道前后均可调用外,
AudioDeviceManager
的以下接口仅可在加入频道成功后调用:
setRecordDeviceVolume
/getRecordDeviceVolume
setPlayoutDeviceVolume
/getPlayoutDeviceVolume
getRecordingLevel
/getPlayoutLevel
macOS (Objective-C)
获取设备
- 通过
PanoRtcEngineKit
的类方法+ engineWithConfig:delegate:
初始化实例。 - 通过
PanoRtcEngineKit
实例的- enumerateDevices:
方法枚举设备,将返回PanoRtcDeviceInfo
数组,包含deviceId
设备唯一标识 和deviceName
设备名称。 - 通过
PanoRtcEngineKit
实例的- setDevice:withType:
方法设置需要使用的设备,参数deviceId
传入设备唯一标识,参数type
为kPanoDeviceVideoCamera
时表示视频采集设备,为kPanoDeviceAudioRecord
时表示音频录制设备,为kPanoDeviceAudioPlayout
时表示音频播放设备。
视频采集设备测试
通过 PanoRtcEngineKit
实例的 - startPreview:withView:config:
方法 或 - startPreview:withDelegate:profile:
方法预览视频采集画面测试其工作情况。
两个方法的区别在于:前者附带渲染视图,后者附带外置渲染器。
音频录制和播放设备测试
- 通过
PanoRtcEngineKit
实例的- startAudioDeviceTestWithRecord:playout:
方法进行环回测试(将采集的声音通过本地播放出来),通过- stopAudioDeviceTest
方法停止该测试。 - 通过
PanoRtcEngineKit
实例的- startRecordDeviceTest:
方法测试音频录制设备,通过- stopRecordDeviceTest
方法停止该测试。 - 通过
PanoRtcEngineKit
实例的- startPlayoutDeviceTest:filename:
方法测试音频播放设备(需要通过filename
参数传入测试用的本地音频文件的完整路径,支持的音频文件格式:mp3, aac, wav),通过- stopPlayoutDeviceTest
方法停止该测试。 - 通过
PanoRtcEngineKit
实例的- getTestRecordingLevel
方法获取测试期间的音频录制强度值(取值范围:0 - 32767),用于展示录制强度指示条。 - 通过
PanoRtcEngineKit
实例的- getTestPlayoutLevel
方法获取测试期间的音频播放强度值(取值范围:0 - 32767),用于展示播放强度指示条。
Electron
视频采集设备测试
请查看 快速接入 文档的章节:获取视频采集设备 和 本地预览,通过预览视频采集画面测试其工作情况。
音频录制和播放设备测试
通过 RtcEngine
实例的 audioDeviceMgr()
方法获取音频设备管理器。
- 通过其
getRecordDeviceList()
方法获取音频录制设备列表,getPlayoutDeviceList()
方法获取音频播放设备列表。 - 通过其
startRecordDeviceTest(deviceId)
方法测试音频录制设备,通过stopRecordDeviceTest()
方法停止该测试。 - 通过其
startPlayoutDeviceTest(deviceId, fileName)
方法测试音频播放设备(需要通过filename
参数传入测试用的本地音频文件的完整路径,支持的音频文件格式:mp3, aac, wav),通过stopPlayoutDeviceTest()
方法停止该测试。 - 通过其
getTestRecordingLevel()
方法获取测试期间的音频录制强度值(取值范围:0 - 32767),用于展示录制强度指示条。 - 通过其
getTestPlayoutLevel()
方法获取测试期间的音频播放强度值(取值范围:0 - 32767),用于展示播放强度指示条。
可以在加入频道前进行测试,也可以在加入频道后测试,但是除上述接口在加入频道前后均可调用外,音频设备管理器的以下接口仅可在加入频道成功后调用:
setRecordDeviceVolume
/getRecordDeviceVolume
setPlayoutDeviceVolume
/getPlayoutDeviceVolume
getRecordingLevel
/getPlayoutLevel
示例代码:
let audioDeviceMgr = rtcEngine.audioDeviceMgr(); // 获取音频设备管理器
let recordDeviceList = audioDeviceMgr.getRecordDeviceList(); // 获取音频录制设备列表
console.log('recordDeviceList: ', recordDeviceList);
let playoutDeviceList = audioDeviceMgr.getPlayoutDeviceList(); // 获取音频播放设备列表
console.log('playoutDeviceList: ', playoutDeviceList);
let recordDeviceId = recordDeviceList[0].deviceId; // 实际使用时请注意选择设备
audioDeviceMgr.startRecordDeviceTest(recordDeviceId); // 测试音频录制设备
let interval = setInterval(()=>{
let testRecordingLevel = audioDeviceMgr.getTestRecordingLevel(); // 获取测试期间的音频录制强度值
console.info('testRecordingLevel: ', testRecordingLevel);
}, 500);
// clearInterval(interval);
// audioDeviceMgr.stopRecordDeviceTest(); // 停止测试音频录制设备
let playoutDeviceId = playoutDeviceList[1].deviceId; // 实际使用时请注意选择设备
audioDeviceMgr.startPlayoutDeviceTest(playoutDeviceId, 'Path\\FileName.mp3'); // 测试音频播放设备
interval = setInterval(()=>{
let testPlayoutLevel = audioDeviceMgr.getTestPlayoutLevel(); // 获取测试期间的音频播放强度值
console.info('testPlayoutLevel: ', testPlayoutLevel);
}, 500);
// clearInterval(interval);
// audioDeviceMgr.stopPlayoutDeviceTest(); // 停止测试音频播放设备
Web
视频采集设备测试
请查看 快速接入 文档的章节:获取摄像头列表 和 本地预览,通过预览视频采集画面测试其工作情况。
音频录制和播放设备测试
通过 RtcEngine
实例的 getMics
方法获取麦克风列表,通过 startRecordDeviceTest
方法开启麦克风测试,stopRecordDeviceTest
方法停止麦克风测试。
Web SDK 暂未提供测试扬声器的方法。
示例代码:
// 获取麦克风列表
this.rtcEngine.getMics(
devices => {
console.log("getMics 列表:", devices);
this.deviceId = devices[0].deviceId; // 此处出于演示目的,直接使用第 0 个元素,实际场景请按需处理
},
error => { console.error("getMics 出现错误:", error); }
);
// 开启麦克风测试
this.rtcEngine.startRecordDeviceTest(
this.deviceId,
obj => {
this.micTestID = obj.micTest;
console.log("RecordDeviceTest 测试结果:", obj.audioLevel);
},
error => { console.error("startRecordDeviceTest 出现错误:", error); }
);
// 停止麦克风测试
let result = this.rtcEngine.stopRecordDeviceTest(this.micTestID);
console.log("stopRecordDeviceTest 调用结果:", result);