gpt4 book ai didi

android - 在 Android MediaRecorder 或使用 AudioRecord 上同时录制两个 channel ?

转载 作者:太空狗 更新时间:2023-10-29 13:35:55 26 4
gpt4 key购买 nike

我可以使用 MediaRecorder 或 AudioRecord 同时录制多个 channel 吗?我想要的是能够同时录制 MediaRecorder.AudioSource.VOICE_UPLINK 和 VOICE_DOWNLINK。可以分为两个单独的文件或具有两个 channel 的同一文件。我尝试使用两个单独的 MediaRecorder 实例。但只有第一个记录。第二个说输入不可用。我还尝试同时使用一个 MediaRecorder 和一个 AudioRecord。同样,两者都单独工作,但是当 AudioRecord 在 MediaRecorder 启动后出现时,会显示以下错误。

05-21 03:40:42.735: E/AudioRecord(1322): Could not get audio input for record source 1
05-21 03:40:42.735: E/AudioRecord-JNI(1322): Error creating AudioRecord instance: initialization check failed.
05-21 03:40:42.825: E/AudioRecord-Java(1322): [ android.media.AudioRecord ] Error code -20 when initializing native AudioRecord object.

我还尝试将第二个 MediaRecorder 放在一个新线程上。同样的结果。所以这让我想知道是否有可能同时记录。我也在考虑是否可以使用一个 AudioRecord 和两个 channel 设置来自 VOICE_UPLINK 和 VOICE_DOWNLINK 的两个独立输入,但我不知道如何设置源(如果可能的话)。

提前致谢

编辑:

Lucifer 的回答意味着 AudioRecord 不能异步调用,同时运行多个实例。有谁知道可以同时录制 AudioSource.VOICE_UPLINK 和 AudioSource.VOICE_DOWNLINK 的方法吗?也许使用具有多个 channel 的单个 AudioRecord 实例?

最佳答案

据我所知,AudioRecording 是一种同步方法。所以你不能同时做两个录音。

当您的代码进行第二次录制过程时,它显示错误 05-21 03:40:42.735: E/AudioRecord(1322): Could not get audio input for record source 1 这纯粹意味着 Recording Channel 已经被 First 忙了。

然而,这可以通过并行处理两个线程来实现,第一个线程记录特定时间量的方式。当控制通过两个第二个线程时,第一个线程停止录制,第二个线程开始录制,反之亦然。但对于移动设备,这将变得更加复杂。所以最好一次录制一个 channel 。

你可以创建一个录音队列,一个一个的录音。

关于android - 在 Android MediaRecorder 或使用 AudioRecord 上同时录制两个 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10681634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com