我创建了音频轨道和音频录音机对象,并尝试将麦克风声音传回扬声器。
为此,我创建了一个任务,从“音频记录”任务“读取”音频数据并将“将其写回”到音频轨道。它似乎工作正常。然而,尝试使用这个应用程序尝试一些数据操作,我了解到复制音频轨道数据和写入的这个任务实际上什么也没做 - 我删除了它并只保留了两行:
audioRecord.startRecording();
audioTrack.play();
无读或写 - 应用继续工作 - 即麦克风数据回显给扬声器!实际上,我试图执行的所有读写操作似乎都被忽略了!
其他一些意想不到的行为:
我尝试停止此过程购买调用AudioTrack.stop()
或AudioTrack.pause()
- 没有任何反应,停止音频的唯一方法是调用AudioRecord.stop()
,但是在弯曲{{1}之后我找不到重启它的方法。
还有其他人经历过这种情况吗?有没有人有办法解决吗?
任何人都可以解释Android AudioRecord
和AudioTrack
的这种奇怪行为吗?
答案 0 :(得分:2)
当您想要停止audioTrack
时,这3行应该适合您audioTrack.flush();
audioTrack.stop();
audioTrack.release();