测试硬件设备
内容介绍
在进行视频通话之前,建议先进行摄像头和麦克风等设备的测试,否则等用户真正进行通话时很难发现设备问题。
支持此功能的平台
iOS | Android | Mac OS | Windows | Electron | Web 端 |
× | × | ✓ | ✓ | ✓ |
测试摄像头
使用 TRTCCloud 的
startCameraDeviceTestInView
接口可以进行摄像头测试,在测试过程中可以通过调用 setCurrentCameraDevice
函数切换摄像头。// 显示摄像头测试界面(支持预览摄像头,切换摄像头)- (IBAction)startCameraTest:(id)sender {// 开始摄像头测试, cameraPreview为macOS下的NSView或者iOS平台的UIView[self.trtcCloud startCameraDeviceTestInView:self.cameraPreview];}//关闭摄像头测试界面- (void)windowWillClose:(NSNotification *)notification{// 结束摄像头测试[self.trtcCloud stopCameraDeviceTest];}
// 启动摄像头测试。传入需要渲染视频的控件句柄。void TRTCMainViewController::startTestCameraDevice(HWND hwnd){trtcCloud->startCameraDeviceTest(hwnd);}// 关闭摄像头测试void TRTCMainViewController::stopTestCameraDevice(){trtcCloud->stopCameraDeviceTest();}
// 启动摄像头测试。传入需要渲染视频的控件句柄。private void startTestCameraDevice(Intptr hwnd){mTRTCCloud.startCameraDeviceTest(hwnd);}// 关闭摄像头测试private void stopTestCameraDevice(){mTRTCCloud.stopCameraDeviceTest();}
麦克风测试
使用 TRTCCloud 的
startMicDeviceTest
函数可以测试麦克风音量,回调函数会返回实时的麦克风音量值。// 麦克风测试示例代码-(IBAction)micTest:(id)sender {NSButton *btn = (NSButton *)sender;if (btn.state == 1) {//开始麦克风测试__weak __typeof(self) wself = self;[self.trtcCloud startMicDeviceTest:500 testEcho:^(NSInteger volume) {dispatch_async(dispatch_get_main_queue(), ^{// 刷新麦克风音量的进度条[wself _updateInputVolume:volume];});}];btn.title = @"停止测试";}else{//结束麦克风测试[self.trtcCloud stopMicDeviceTest];[self _updateInputVolume:0];btn.title = @"开始测试";}}
// 麦克风测试示例代码void TRTCMainViewController::startTestMicDevice(){// 设置音量回调频率,此处500ms回调一次,在 onTestMicVolume 回调接口监听。uint32_t interval = 500;// 开始麦克风测试trtcCloud->startMicDeviceTest(interval);}// 结束麦克风测试void TRTCMainViewController::stopTestMicDevice(){trtcCloud->stopMicDeviceTest();}
// 麦克风测试示例代码private void startTestMicDevice(){// 设置音量回调频率,此处500ms回调一次,在 onTestMicVolume 回调接口监听。uint interval = 500;// 开始麦克风测试mTRTCCloud.startMicDeviceTest(interval);}// 结束麦克风测试private void stopTestMicDevice(){mTRTCCloud.stopMicDeviceTest();}
扬声器测试
使用 TRTCCloud 的
startSpeakerDeviceTest
函数会通过播放一段默认的 mp3 音频测试扬声器是否在正常工作。// 扬声器测试示例代码// 以作为 NSButton 的点击事件为例, 在 xib 中设置 Button 在 On 和 Off 下的标题分别为"结束测试"和"开始测试"- (IBAction)speakerTest:(NSButton *)btn {NSString *path = [[NSBundle mainBundle] pathForResource:@"test-32000-mono" ofType:@"mp3"];if (btn.state == NSControlStateValueOn) {// 单击"开始测试"__weak __typeof(self) wself = self;[self.trtcEngine startSpeakerDeviceTest:path onVolumeChanged:^(NSInteger volume, BOOL playFinished) {// 以下涉及 UI 操作,需要切换到 main queue 中执行dispatch_async(dispatch_get_main_queue(), ^{// 这里 _updateOutputVolume 为更新界面中的扬声器音量指示器[wself _updateOutputVolume:volume];if (playFinished) {// 播放完成时将按钮状态置为"开始测试"sender.state = NSControlStateValueOff;}});}];} else {// 单击"结束测试"[self.trtcEngine stopSpeakerDeviceTest];[self _updateOutputVolume:0];}}// 更新扬声器音量指示器- (void)_updateOutputVolume:(NSInteger)volume {// speakerVolumeMeter 为 NSLevelIndicatorself.speakerVolumeMeter.doubleValue = volume / 255.0 * 10;}
// 扬声器测试示例代码void TRTCMainViewController::startTestSpeakerDevice(std::string testAudioFilePath){// testAudioFilePath 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持文件格式: wav、mp3。// 从 onTestSpeakerVolume 回调接口监听扬声器测试音量值。trtcCloud->startSpeakerDeviceTest(testAudioFilePath.c_str());}// 结束扬声器测试void TRTCMainViewController::stopTestSpeakerDevice() {trtcCloud->stopSpeakerDeviceTest();}
// 扬声器测试示例代码private void startTestSpeakerDevice(string testAudioFilePath){// testAudioFilePath 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持文件格式: wav、mp3。// 从 onTestSpeakerVolume 回调接口监听扬声器测试音量值。mTRTCCloud.startSpeakerDeviceTest(testAudioFilePath);}// 结束扬声器测试private void stopTestSpeakerDevice() {mTRTCCloud.stopSpeakerDeviceTest();}