产品百科 | RTC Mac SDK 音视频设备测试说明

简介: RTC SDK 为您提供音视频设备测试的方法,您可以在音视频通话前检查当前设备上的摄像头,麦克风以及扬声器等音视频设备是否正常工作,以保证音视频通话质量。通过阅读本文,您可以了解音视频设备测试的方法。

摄像头测试

  1. 创建 SDK 实例后,应用层可以调用接口 getCameraList 获取当前设备上所有可用摄像头,返回设备列表中包含设备 ID 及设备名称,应用层可选择通过设备名称或设备 ID 进行判断,并通过接口 setCurrentCamerasetCurrentCameraWithID 选中需要测试的设备。
NSArray *camList = [self.engine getCameraList];
// 设备名称
NSString *matchDeviceName = /*测试设备名*/;
int camCount = (int)camList.count;
for(int i=0; i<camCount; i++) {
    AliRtcDeviceInfo *deviceInfo = [camList objectAtIndex:i];
    NSString *name = deviceInfo.deviceName;
    if ([name isEqualToString:matchDeviceName]) {
        [self.engine setCurrentCamera:matchDeviceName];
    }
}
// 设备ID
NSString *matchDeviceId = /*测试设备ID*/;
int camCount = (int)camList.count;
for(int i=0; i<camCount; i++) {
    AliRtcDeviceInfo *deviceInfo = [camList objectAtIndex:i];
    NSString *deviceID = deviceInfo.deviceId;
    if ([deviceID isEqualToString:matchDeviceId]) {
        [self.engine setCurrentCameraWithID:matchDeviceId];
    }
}
  1. 设置测试摄像头设备之后,通过 setLocalViewConfig 接口可以设置预览显示窗口,再启动预览,即可通过预览画面是否正常显示,判断当前摄像头设备是否正常工作。
// 设置预览窗口
AliVideoCanvas *canvas = [[AliVideoCanvas alloc] init];
canvas.renderMode = renderMode;
canvas.view = (AliRenderView *)view;
canvas.mirrorMode = mirrorMode;
[self.engine setLocalViewConfig:canvas forTrack:AliRtcVideoTrackCamera];
[self.engine startPreview];

麦克风测试

  1. 开始测试前,通过接口 getAudioCaptures 获取当前设备上所有可用麦克风设备,返回设备列表中将同时返回设备 ID 及设备名称,应用层可选择通过设备名称调用接口 startTestAudioRecordWithName 进行麦克风测试,测试开始后会收到 onAudioDeviceRecordLevel 回调,接收麦克风测试时返回的音量值。
// 开始测试
NSArray *audioList = [self.engine getAudioCaptures];
AliRtcDeviceInfo *deviceInfo = audioList[0];
[self.engine startTestAudioRecordWithName:deviceInfo.deviceName];
// 回调
- (void)onAudioDeviceRecordLevel:(int)level {
    dispatch_async(dispatch_get_main_queue(), ^{
        NSLog(@"麦克风音量值:%d", level);
    });
}
  1. 测试完成后,调用接口 stopTestAudioRecord 停止麦克风测试。
[self.engine stopTestAudioRecord];

扬声器测试

  1. 开始测试前,通过接口 getAudioRenderers 获取当前设备上所有可用扬声器设备,返回设备列表中将同时返回设备 ID 及设备名称,应用层可选择通过设备名称调用接口 startTestAudioPlayoutWithName 进行扬声器测试,测试开始后会收到 onAudioDevicePlayoutLevel 回调,接收扬声器测试时返回的音量值。
// 开始测试
NSArray *speakerList = [self.engine getAudioRenderers];
AliRtcDeviceInfo *deviceInfo = speakerList[0];
[self.engine startTestAudioPlayoutWithName:deviceInfo.deviceName filePath:path loopCycles:0];
// 回调
- (void)onAudioDevicePlayoutLevel:(int)level {
    dispatch_async(dispatch_get_main_queue(), ^{
        NSLog(@"扬声器音量值:%d", level);
    });
}

  1. 说明 目前扬声器测试播放文件只支持 Wave 格式,传入路径需要为绝对路径,并保证可以被读取访问。
  2. 测试完成或接收到文件播放结束事件回调后,调用 stopTestAudioPlayout 接口停止扬声器测试。
[self.engine stopTestAudioPlayout];


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

image.png

相关文章
|
Linux 开发工具 Windows
设备接入--海康摄像头SDK
springboot-对接海康摄像头,兼容window和Linux环境
4366 3
设备接入--海康摄像头SDK
|
4月前
|
API 开发工具 图形学
影创SDK☀️六、讲讲SDK如何适配不同型号的设备控制器
影创SDK☀️六、讲讲SDK如何适配不同型号的设备控制器
|
7月前
|
存储 运维 网络协议
【开源物联网平台】物联网设备上云提供开箱即用接入SDK
IOTDeviceSDK是物联网平台提供的设备端软件开发工具包,可简化开发过程,实现设备快速接入各大物联网平台。设备厂商获取SDK后,根据需要选择相应功能进行移植,即可快速集成IOTDeviceSDK,实现设备的接入。
281 0
|
存储 Java Linux
SpringBoot集成海康网络设备SDK
概述 设备网络SDK是基于设备私有网络通信协议开发的,为嵌入式网络硬盘录像机、NVR、网络摄像机、网络球机、视频服务器、解码器、报警主机、网络存储等产品服务的配套模块,用于远程访问和控制设备软件的二次开发。 功能 图像预览, 文件回放和下载, 云台控制, 布防/撤防, 语音对讲, 日志管理, 解码卡, 远程升级, 远程重启/关闭, 格式化硬盘, 参数配置(系统配置, 通道配置, 串口配置, 报警配置, 用户配置), 多路解码器, 智能设备功能和获取设备能力集等。
1050 13
|
监控 安全 机器人
Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机设备的各种固件信息如DeviceID或者SerialNumber等(C++)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机设备的各种固件信息如DeviceID或者SerialNumber等(C++)
123 0
|
监控 安全 开发工具
Baumer工业相机堡盟工业相机如何通过BGAPI SDK使用DeviceEvents“设备事件”记录相机事件的各类时间(C#)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK使用DeviceEvents“设备事件”记录相机事件的各类时间(C#)
104 0
HH
|
物联网 API 开发工具
物联网平台之python语言的设备端接入、云端sdk集成调用
本文介绍如何调用Python语言的Paho MQTT类库,将设备接入阿里云物联网平台,并进行消息收发。 以及物联网平台提供Python语言的云端SDK供开发人员使用。本文介绍云端Python SDK的安装和配置,及使用Python SDK调用云端API的示例。
HH
913 0
物联网平台之python语言的设备端接入、云端sdk集成调用
|
4月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
114 0
|
1月前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
78 1
|
2月前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
67 7