同时录制音频和播放音频

时间:2011-07-03 17:06:18

标签: android audio media-player playback recorder

在我的应用程序中,我正在录制来自麦克风的输入,并且在某一点上我正在播放声音(录音仍在继续)。 现在录音机“停止”录音(仍然可以使用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();
    }

为什么录音“停止”?有没有办法停止停止?这是理想的行为吗?我怎么能找出问题所在?

任何提示都表示赞赏。

1 个答案:

答案 0 :(得分:1)

尝试使用原生基本播放器和录音机......这些可以通过AudioTrack类和其他相关的apis(如音频格式)访问。使用它们,您可以以块或缓冲区(显式字节数组)记录和播放pcm音频数据,并使用循环将缓冲区写入您想要的任何内容。可能会允许重新编码和同时播放

祝你好运