内容介绍
在进行视频通话之前,建议先进行摄像头和麦克风等设备的测试,否则等用户真正进行通话时很难发现设备问题。

支持此功能的平台
iOS | Android | Mac OS | Windows | Electron | Flutter | 微信小程序 | Web 端 |
× | × | ✓ | ✓ | ✓ | ✓ | × |
测试摄像头
使用 TRTCCloud 的
startCameraDeviceTestInView
接口可以进行摄像头测试,在测试过程中可以通过调用 setCurrentCameraDevice
函数切换摄像头。- (IBAction)startCameraTest:(id)sender {[self.deviceManager startCameraDeviceTest:self.cameraPreview];}- (void)windowWillClose:(NSNotification *)notification{[self.deviceManager stopCameraDeviceTest];}
// 启动摄像头测试。传入需要渲染视频的控件句柄。void TRTCMainViewController::startTestCameraDevice(void* view){deviceManager->startCameraDeviceTest(view);}// 关闭摄像头测试void TRTCMainViewController::stopTestCameraDevice(){deviceManager->stopCameraDeviceTest();}
// 启动摄像头测试。传入需要渲染视频的控件句柄。private void startTestCameraDevice(Intptr hwnd){deviceManager.startCameraDeviceTest(hwnd);}// 关闭摄像头测试private void stopTestCameraDevice(){deviceManager.stopCameraDeviceTest();}
void startTestCameraDevice(int viewId) {_txDeviceManager.startCameraDeviceTest(viewId);}void stopTestCameraDevice() {_txDeviceManager.stopCameraDeviceTest();}
麦克风测试
使用 TRTCCloud 的
startMicDeviceTest
函数可以测试麦克风音量,回调函数会返回实时的麦克风音量值。- (IBAction)onClickMicTest:(id)sender {NSButton *btn = (NSButton *)sender;if (btn.state == 1) {__weak __typeof(self) wself = self;[self.deviceManager startMicDeviceTest:300 testEcho:^(NSInteger volume) {dispatch_async(dispatch_get_main_queue(), ^{[wself _updateInputVolume:volume];});}];btn.title = @"Stop Test";}else{[self.deviceManager stopMicDeviceTest];[self _updateInputVolume:0];btn.title = @"Start Test";}}
// 麦克风测试示例代码void TRTCMainViewController::startTestMicDevice(){// 设置音量回调频率,此处500ms回调一次,在 onTestMicVolume 回调接口监听。uint32_t interval = 500;// 开始麦克风测试deviceManager->startMicDeviceTest(interval);}// 结束麦克风测试void TRTCMainViewController::stopTestMicDevice(){deviceManager->stopMicDeviceTest();}
// 麦克风测试示例代码private void startTestMicDevice(){// 设置音量回调频率,此处500ms回调一次,在 onTestMicVolume 回调接口监听。uint interval = 500;// 开始麦克风测试deviceManager.startMicDeviceTest(interval);}// 结束麦克风测试private void stopTestMicDevice(){deviceManager.stopMicDeviceTest();}
void startMicDeviceTest(int interval) {_txDeviceManager.startMicDeviceTest(interval);}void stopMicDeviceTest() {_txDeviceManager.stopMicDeviceTest();}
扬声器测试
使用 TRTCCloud 的
startSpeakerDeviceTest
函数会通过播放一段默认的 mp3 音频测试扬声器是否在正常工作。- (IBAction)onClickSpeakerTest:(NSButton *)sender {NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"];NSButton *btn = (NSButton *)sender;if (btn.state == NSControlStateValueOn) {__weak __typeof(self) wself = self;[self.deviceManager startSpeakerDeviceTest:path onVolumeChanged:^(NSInteger volume, BOOL playFinished) {dispatch_async(dispatch_get_main_queue(), ^{[wself _updateOutputVolume:volume];if (playFinished) {sender.state = NSControlStateValueOff;}});}];} else {[self.deviceManager stopSpeakerDeviceTest];[self _updateOutputVolume:0];}}
// 扬声器测试示例代码void TRTCMainViewController::startTestSpeakerDevice(std::string testAudioFilePath){// testAudioFilePath 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持文件格式: wav、mp3。// 从 onTestSpeakerVolume 回调接口监听扬声器测试音量值。deviceManager->startSpeakerDeviceTest(testAudioFilePath.c_str());}// 结束扬声器测试void TRTCMainViewController::stopTestSpeakerDevice() {deviceManager->stopSpeakerDeviceTest();}
// 扬声器测试示例代码private void startTestSpeakerDevice(string testAudioFilePath){// testAudioFilePath 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持文件格式: wav、mp3。// 从 onTestSpeakerVolume 回调接口监听扬声器测试音量值。deviceManager.startSpeakerDeviceTest(testAudioFilePath);}// 结束扬声器测试private void stopTestSpeakerDevice() {deviceManager.stopSpeakerDeviceTest();}
void startSpeakerDeviceTest(String filePath) {_txDeviceManager.startSpeakerDeviceTest(filePath);}void stopSpeakerDeviceTest() {_txDeviceManager.stopSpeakerDeviceTest();}