为保证通话或直播质量,我们推荐进行音视频设备测试,检测麦克风、摄像头等音视频设备能否正常工作。该功能对于有高质量要求的场景,如在线教育等,尤为适用。
请确保你已经了解如何实现音视频通话或互动直播。详见快速开始:
参考以下方法测试音视频设备:
StartAudioRecordingDeviceTest
或 StartEchoTest
测试音频采集设备。若想停止测试,调用 StopAudioRecordingDeviceTest
或 StopEchoTest
。StartAudioPlaybackDeviceTest
或 StartEchoTest
测试音频播放设备。若想停止测试,调用 StopAudioPlaybackDeviceTest
或 StopEchoTest
。StartPreview
方法测试视频设备。若想停止测试,调用 StopPreview
。StartAudioRecordingDeviceTest 或 StartEchoTest
;用户说话,如果采集设备正常工作,SDK 会触发 OnVolumeIndicationHandler
回调并报告音量信息(UID 为 0 表示本地音量)。若想停止测试,调用 StopAudioRecordingDeviceTest
或 StopEchoTest
。// 适用于 Windows 或 macOS 设备。
public void loadEngine(string appId)
{
// 初始化 IRtcEngine。
mRtcEngine = IRtcEngine.GetEngine (appId);
mRtcEngine.OnVolumeIndication = OnVolumeIndicationHandler;
// 获取 AudioRecordingDeviceManager 类。
AudioRecordingDeviceManager audioRecordingDeviceManager = (AudioRecordingDeviceManager)mRtcEngine.GetAudioRecordingDeviceManager();
// 创建 AudioRecordingDeviceManager 实例。
audioRecordingDeviceManager.CreateAAudioRecordingDeviceManager();
// 获取系统中被索引的音频采集设备的总数。
int count = audioRecordingDeviceManager.GetAudioRecordingDeviceCount();
// 获取某个被索引的音频采集设备 ID。index 为指定的索引值,必须小于 GetAudioRecordingDeviceCount 的返回值。
audioRecordingDeviceManager.GetAudioRecordingDevice(0, ref deviceNameA, ref deviceIdA);
// 通过设备 ID 设置指定的音频采集设备。
audioRecordingDeviceManager.SetAudioRecordingDevice(deviceIdA);
// 启用音频音量回调功能。
mRtcEngine.EnableAudioVolumeIndication(300, 3, true);
// 开始音频采集设备测试。
audioRecordingDeviceManager.StartAudioRecordingDeviceTest(300);
// 停止音频采集设备测试。
audioRecordingDeviceManager.StopAudioRecordingDeviceTest();
// 释放 AudioRecordingDeviceManager 实例。
audioRecordingDeviceManager.ReleaseAAudioRecordingDeviceManager();
}
// 实现音频音量回调接口。
void OnVolumeIndicationHandler(AudioVolumeInfo[] speakers, int speakerNumber, int totalVolume)
{
}
// 适用于 Android 或 iOS 设备。
public void loadEngine(string appId)
{
// 初始化 IRtcEngine。
mRtcEngine = IRtcEngine.GetEngine (appId);
// 开始音频设备测试。
mRtcEngine.StartEchoTest(10);
// 停止音频设备测试。
mRtcEngine.StopEchoTest();
}
CreateAAudioRecordingDeviceManager
GetAudioRecordingDeviceManager
GetAudioRecordingDeviceCount
GetAudioRecordingDevice
SetAudioRecordingDevice
OnVolumeIndicationHandler
EnableAudioVolumeIndication
StartAudioRecordingDeviceTest
StopAudioRecordingDeviceTest
ReleaseAAudioRecordingDeviceManager
StartEchoTest
StopEchoTest
StartAudioPlaybackDeviceTest 或 StartEchoTest
,并指定播放的音频文件。如果能听到声音,则说明播放设备正常工作。若想停止测试,调用 StopAudioPlaybackDeviceTest 或 StopEchoTest
。// 适用于 Windows 或 macOS 设备。
public void loadEngine(string appId)
{
// 初始化 IRtcEngine。
mRtcEngine = IRtcEngine.GetEngine (appId);
mRtcEngine.OnVolumeIndication = OnVolumeIndicationHandler;
// 获取 AudioPlaybackDeviceManager 类。
AudioPlaybackDeviceManager audioPlaybackDeviceManager = (AudioPlaybackDeviceManager)mRtcEngine.GetAudioPlaybackDeviceManager();
// 创建 AudioPlaybackDeviceManager 实例。
audioPlaybackDeviceManager.CreateAAudioPlaybackDeviceManager();
// 获取系统中被索引的音频播放设备的总数。
int count = audioPlaybackDeviceManager.GetAudioPlaybackDeviceCount();
// 获取某个被索引的音频播放设备 ID。index 为指定的索引值,必须小于 GetAudioPlaybackDeviceCount 的返回值。
audioPlaybackDeviceManager.GetAudioPlaybackDevice(0, ref deviceNameA, ref deviceIdA);
// 通过设备 ID 设置指定的音频播放设备。
audioPlaybackDeviceManager.SetAudioPlaybackDevice(deviceIdA);
// 启用音频音量回调功能。
mRtcEngine.EnableAudioVolumeIndication(300, 3, true);
// 开始音频播放设备测试。如下示例表示播放在 Assets/StreamingAssets 文件夹下的 mytestaudio.mp3 文件。
string MyAudioFilePath = Application.streamingAssetsPath + "/mytestaudio.mp3";
audioPlaybackDeviceManager.StartAudioPlaybackDeviceTest(MyAudioFilePath);
// 停止音频播放设备测试。
audioPlaybackDeviceManager.StopAudioPlaybackDeviceTest();
// 释放 AudioPlaybackDeviceManager 实例。
audioPlaybackDeviceManager.ReleaseAAudioPlaybackDeviceManager();
}
// 实现音频音量回调接口。
void OnVolumeIndicationHandler(AudioVolumeInfo[] speakers, int speakerNumber, int totalVolume)
{
}
// 适用于 Android 或 iOS 设备。
public void loadEngine(string appId)
{
// 初始化 IRtcEngine。
mRtcEngine = IRtcEngine.GetEngine (appId);
// 开始音频设备测试。
mRtcEngine.StartEchoTest(10);
// 停止音频设备测试。
mRtcEngine.StopEchoTest();
}
CreateAAudioPlaybackDeviceManager
GetAudioPlaybackDeviceManager
GetAudioPlaybackDeviceCount
GetAudioPlaybackDevice
SetAudioPlaybackDevice
OnVolumeIndicationHandler
EnableAudioVolumeIndication
StartAudioPlaybackDeviceTest
StopAudioPlaybackDeviceTest
ReleaseAAudioPlaybackDeviceManager
StartEchoTest
StopEchoTest
EnableVideo
和 EnableVideoObserver
开启视频模块和视频观测器后,调用 StartPreview
,如果能看到本地采集的图像,则说明视频设备正常工作。若想停止测试,调用 StopPreview
。// 适用于 Windows 或 macOS 设备。
public void loadEngine(string appId)
{
// 初始化 IRtcEngine。
mRtcEngine = IRtcEngine.GetEngine (appId);
// 获取 VideoDeviceManager 对象。
VideoDeviceManager videoDeviceManager = (VideoDeviceManager)mRtcEngine.GetVideoDeviceManager();
// 创建 VideoDeviceManager 实例。
videoDeviceManager.CreateAVideoDeviceManager();
// 获取系统中被索引的视频设备总数。
videoDeviceManager.GetVideoDeviceCount();
// 获取某个被索引的视频设备 ID。index 为指定的索引值,必须小于 GetVideoDeviceCount 的返回值。
videoDeviceManager.GetVideoDevice(0, deviceNameA, deviceIdA);
// 通过设备 ID 设置指定的视频设备。
videoDeviceManager.SetVideoDevice(deviceIdA);
// 开启视频模块。
int mRtcEngine.EnableVideo();
// 开启视频观测器。
int mRtcEngine.EnableVideoObserver();
// 开启视频预览。
int mRtcEngine.StartPreview();
// 停止视频预览。
int mRtcEngine.StopPreview();
// 释放 VideoDeviceManager 实例。
videoDeviceManager.ReleaseAVideoDeviceManager();
}
CreateAVideoDeviceManager
GetVideoDeviceManager
GetVideoDeviceCount
GetVideoDevice
SetVideoDevice
EnableVideo
EnableVideoObserver
StartPreview
StopPreview
ReleaseAVideoDeviceManager
Stop
方法停止测试,然后再调用 JoinChannelByKey
加入频道。