同时录制音频和播放音频
问题描述:
在我的应用程序中,我正在录制来自麦克风的输入,并且在某个点我正在播放声音(而录制仍在进行中)。 现在录音机“停止”,以记录(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如音频格式。使用它们,您可以以块或缓冲区(显式字节数组)记录和播放PCM音频数据,并使用循环将缓冲区写入任何您想要的内容。可能会允许进行重新编码和同时播放
祝你好运
你有没有得到任何解决方案?我想做同样的事情! – QAMAR
@Gerd如果您发现我们也请提供解决方案.. – 2013-05-15 10:16:57