在我的应用程序中,我正在录制来自麦克风的输入,并且在某个时刻我正在播放声音(同时录音仍在进行)。 现在记录器“停止”记录(mrec.stop() 可能仍在使用),LogCat 条目似乎是:
07-03 18:40:34.811: INFO/AudioHardwareALSA(2179): Output standby called!!. Turn off PCM device.
我正在两部手机上进行测试,一部是三星 Galaxy S,一部是三星 Galaxy 3。在 Galaxy S 上,一切都按预期进行(即录音仍在进行)。 除了规范之外,这两款手机的区别在于 Galaxy S 有 2.2.1 而 Galaxy 3 有 2.2 我想,一个解决方法是再次初始化 mediarecorder,但这会使应用程序卡顿,这不是我们想要的。
这里是如何设置媒体播放器和媒体记录器的更多信息:
void Init()
{
mp = MediaPlayer.create(getContext(), R.raw.pop);
mrec = new MediaRecorder();
mrec.setAudioSource(MediaRecorder.AudioSource.MIC);
mrec.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
[..]
mrec.setOutputFile(audiofile.getAbsolutePath());
mrec.prepare();
mrec.start();
}
void Event()
{
mp.start();
}
为什么录音“停止”了?有没有办法停止停止?这是期望的行为吗?我怎样才能找出问题所在?
如有任何提示,我们将不胜感激。
最佳答案
尝试使用原生的基本播放器和录音机……这些都可以通过 AudioTrack 类和其他相关的 api(如音频格式)访问。使用它们,您可以在 block 或缓冲区(显式字节数组)中录制和播放 pcm 音频数据,并使用循环将缓冲区写入任何您想要的内容。可能会允许同时进行重新编码和播放
祝你好运
关于android - 同时录制音频和播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6564264/