0

我正在开发一个应用程序,它使用 ConnectyCube 在两个联系人之间建立 P2P 视频通话。在这次通话中,我尝试使用SpeechRecognizer API将一些语音输入翻译成文本。

我在集成 ConnectyCube 视频通话和 SpeechRecognizer 时遇到了一些问题,因为它们都需要同时运行,这意味着它们都需要同时使用音频流。

在进行 ConnectyCube 视频通话时尝试通过 SpeechRecognizer 开始收听会引发“ERROR_AUDIO”错误:

/** Audio recording error. */
public static final int ERROR_AUDIO = 3;

在这种不兼容之后,我的想法是暂停或暂停 ConnectyCube 的音频流,以便 SpeechRecognizer 可以使用它。但是,我还没有成功地做到这一点。

我已经测试过禁用 RTCSession AudioTrack 以及完全关闭 MediaStream,但均未成功:

currentCall?.mediaStreamManager?.close()

和/或

currentCall?.mediaStreamManager?.localAudioTrack?.setEnabled(false)

我还搜索了一种将呼叫置于保持状态的方法(理论上它会释放音频流),但在 SDK 中没有找到这样做的方法。有没有办法在不挂断的情况下保持通话?

如果上述不可行,还有什么我可以尝试实现我上面提到的吗?

谢谢!

4

1 回答 1

0

ERROR_AUDIO发生是因为无法访问被webrtc端占用的android音频输入

因此,要使用SpeechRecognizer,您需要关闭当前通话,使用SpeechRecognizer,然后再次创建新通话。

于 2021-05-20T18:39:54.967 回答