我正在开发一个使用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中找不到这样做的方法。有没有一种方法可以在不挂断的情况下保留呼叫?
如果以上都不可能实现,还有什么我可以尝试实现我上面提到的吗?
谢谢!
发布于 2021-05-21 02:39:55
ERROR_AUDIO的出现是因为无法访问被WebRTC端占用的安卓音频输入。
因此,要使用SpeechRecognizer,您需要关闭当前调用,使用SpeechRecognizer,然后再次创建新调用。
https://stackoverflow.com/questions/67604607
复制相似问题