Android AudioTrack和AudioRecord的奇怪行为

时间:2012-09-19 16:07:08

标签: android audiorecord audiotrack android-audiorecord

我创建了音频轨道和音频录音机对象,并尝试将麦克风声音传回扬声器。

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

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

无读或写 - 应用继续工作 - 即麦克风数据回显给扬声器!实际上,我试图执行的所有读写操作似乎都被忽略了!

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

我尝试停止此过程购买调用AudioTrack.stop()AudioTrack.pause() - 没有任何反应,停止音频的唯一方法是调用AudioRecord.stop(),但是在弯曲{{1}之后我找不到重启它的方法。

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

1 个答案:

答案 0 :(得分:2)

当您想要停止audioTrack

时,这3行应该适合您
audioTrack.flush();
audioTrack.stop();
audioTrack.release();