IDC

实时音视频 音视频设备测试 - 高级功能

作者:admin 2021-10-26 我要评论

内容介绍 在进行视频通话之前,建议先进行摄像头和麦克风等设备的测试,否则等用户真正进行通话时很难发现设备问题。 支持此功能的平台 iOS Android Mac OS Wind...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

内容介绍

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

支持此功能的平台

iOS Android Mac OS Windows Electron 微信小程序 Chrome 浏览器
× × ? ? ? × ×

测试摄像头

使用 TRTCCloud 的 startCameraDeviceTestInView 接口可以进行摄像头测试,在测试过程中可以通过调用 setCurrentCameraDevice 函数切换摄像头。

  • Mac平台
  • Windows平台(C++)
  • Windows平台(C#)
// 显示摄像头测试界面(支持预览摄像头,切换摄像头)
- (IBAction)startCameraTest:(id)sender {
// 开始摄像头测试, cameraPreview为macOS下的NSView或者iOS平台的UIView
[self.trtcCloud startCameraDeviceTestInView:self.cameraPreview];
}

//关闭摄像头测试界面
- (void)windowWillClose:(NSNotification *)notification{
// 结束摄像头测试
[self.trtcCloud stopCameraDeviceTest];
}

麦克风测试

使用 TRTCCloud 的 startMicDeviceTest 函数可以测试麦克风音量,回调函数会返回实时的麦克风音量值。

  • Mac平台
  • Windows平台(C++)
  • Windows平台(C#)
// 麦克风测试示例代码
-(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 = @"开始测试";
}
}

扬声器测试

使用 TRTCCloud 的 startSpeakerDeviceTest 函数会通过播放一段默认的 mp3 音频测试扬声器是否在正常工作。

  • Mac平台
  • Windows平台(C++)
  • Windows平台(C#)
// 扬声器测试示例代码
// 以作为 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 为 NSLevelIndicator
self.speakerVolumeMeter.doubleValue = volume / 255.0 * 10;
}

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
腾讯云代理商
精彩导读
海外云服务器
热门资讯
腾讯云代理商