1

我创建了 Audio Track 和 Audio Recorder 对象,并试图将麦克风的声音传回扬声器。

为此,我创建了一个任务,从音频记录任务“读取”音频数据并将其“写回”到音频轨道。它似乎工作正常。然而,在玩这个应用程序尝试一些数据操作时,我了解到这个复制音轨数据并写回来的任务实际上什么都不做——我删除了它,只保留了两行:

    audioRecord.startRecording();
    audioTrack.play();

没有读取或写入 - 应用程序继续工作- 即麦克风数据回显到扬声器!在实践中,我试图执行的所有读写操作似乎都被忽略了!

其他一些意想不到的行为:

我试图停止这个过程购买呼叫AudioTrack.stop()AudioTrack.pause()- 没有任何反应,停止音频的唯一方法是通过呼叫AudioRecord.stop(),但是在弯腰之后AudioRecord我找不到重新启动它的方法。

有没有其他人也经历过这种情况?有没有人有办法解决吗?任何人都可以解释 Android 的这种奇怪行为AudioTrackAudioRecord

4

1 回答 1

2

当您想停止 audioTrack 时,这 3 行应该适合您

audioTrack.flush();
audioTrack.stop();
audioTrack.release();
于 2012-10-26T17:08:29.643 回答