startHardwareEchoDetection method

Future<int?> startHardwareEchoDetection(
  1. string testAudioFilePath
)

@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_MEETINGCHANNEL_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}');
  }
}