1

大家好!提前对不起我的英语。:)

我正在尝试使用 Echoprint 代码制作音频识别应用程序。一个实例工作正常,但我们想同时收听几个 AudioRecords。例如,我们不想分析一首歌曲的 20 秒以进行识别,而是希望拥有例如 3 个带有 3 个匹配项的录音机来改进结果。

前任。一个从 0s 到 20s 听,另一个从 0s 到 10s 听,另一个从 10s 到 20s 听。这样我们将有 3 个匹配响应,我们希望这会给我们在短时间内匹配音频的更高准确性或更多可能性(我们最多需要在 5-15 秒内匹配)。

问题是,我有来自http://masl.cis.gvsu.edu/2012/01/25/android-echoprint/的代码 我有一个类,它调用了一个库,它可以制作所有东西。我试图在类中创建几个线程,所以每个人都有自己的库类实例,但总是在第二个AudioRecord 的实例化中失败:

new AudioRecord(MediaRecorder.AudioSource.MIC,FREQUENCY, CHANNEL, ENCODING, minBufferSize); 

如果我在第二个线程中放置一个睡眠,以便让第一个线程完成,一切都很好。问题在于实例化......错误是:

AudioRecord:无法获取记录源 1 的音频输入 AudioRecord:创建 AudioRecord 实例时出错:初始化检查失败。AudioRecord:[Android.media.AudioRecord] 初始化本机 AudioRecord 对象时出现错误代码 -20

所以,我有两个问题:

  1. 一种是如果问题是不可能同时收听多个 AudioRecords 实例。就像只有一个频道、设备、输入设备、端口等要监听,如果它很忙,它就会崩溃,直到你制作了 audiorecord.release()?在这两个中我都使用麦克风和相同的频道....也许这就是问题所在?如果是这样......我该如何正确地做到这一点?

  2. 我也在模拟器中......在真实设备中它可以工作但在模拟器中不起作用?

致以最诚挚的问候,并衷心感谢所有人!

4

0 回答 0