同时录制音频和播放音频

4

在我的应用程序中,我正在录制来自麦克风的输入,并在某个时刻播放声音(录制仍在进行中)。 现在,录音器“停止”录制(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,但这会使应用程序出现卡顿,这是不希望的。
以下是更多有关mediaplayer和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();
    }

为什么录音会“停止”?有没有办法停止这种情况?这是期望的行为吗?如何找出问题所在?

欢迎提供任何提示。


你有找到解决方案吗?我也想做同样的事情! - QAMAR
@Gerd 如果您找到了解决方案,请也向我们提供。 - user2118554
1个回答

0
尝试使用本地基本播放器和录音机...这些可以通过AudioTrack类和其他相关的API(如音频格式)进行访问。使用它们,您可以以块或缓冲区(显式字节数组)记录和播放pcm音频数据,并使用循环将缓冲区写入任何您想要的东西。也许这样可以同时进行录制和播放。祝好运。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接