startHardwareEchoDetection method
@detail api
@author zhangcaining
@brief 开启通话前回声检测
@param testAudioFilePath 用于回声检测的音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持以下音频格式: mp3,aac,m4a,3gp,wav。
音频文件不为静音文件,推荐时长为 10 ~ 20 秒。
@return 方法调用结果:
- 0: 成功。
- -1:失败。上一次检测未结束,请先调用 stopHardwareEchoDetection{@link #RTCEngine#stopHardwareEchoDetection} 停止检测 后重新调用本接口。
- -2:失败。路径不合法或音频文件格式不支持。
@note
- 只有当 ChannelProfile{@link #ChannelProfile} 为 CHANNEL_PROFIEL_MEETING 和 CHANNEL_PROFILE_MEETING_ROOM 时支持开启本功能。
- 开启检测前,你需要向用户获取音频设备的使用权限。
- 开启检测前,请确保音频设备没有被静音,采集和播放音量正常。
- 调用本接口后监听 onHardwareEchoDetectionResult 获取检测结果。
- 检测期间,进程将独占音频设备,无法使用其他音频设备测试接口: startEchoTest{@link #RTCEngine#startEchoTest}、startAudioDeviceRecordTest{@link #IRTCAudioDeviceManager#startAudioDeviceRecordTest} 或 startAudioPlaybackDeviceTest{@link #IRTCAudioDeviceManager#startAudioPlaybackDeviceTest}。
- 调用 stopHardwareEchoDetection{@link #RTCEngine#stopHardwareEchoDetection} 停止检测,释放对音频设备的占用。
Implementation
Future<int?> startHardwareEchoDetection(string testAudioFilePath) async {
$a() => ($instance as $p_a.RTCEngine)
.startHardwareEchoDetection(testAudioFilePath);
$i() => ($instance as $p_i.ByteRTCEngine)
.startHardwareEchoDetection(testAudioFilePath);
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}