使用 AudioRecord 录制麦克风时使用 SoundPool 在 Android 上播放声音
Playing sound on Android with SoundPool while Recording microphone with AudioRecord
我正在使用 AudioRecord 录制麦克风数据,同时使用 SoundPool 播放声音。我的问题是:当我在 AudioRecord 上调用 startRecording() 时,SoundPool 变得不稳定或完全停止。当我调用 stopRecording() 时,所有提示音都会立即进入。我应该使用更好的图书馆吗?我注意到应用程序中的按钮仍然有响应,并且仍然能够播放它们的默认声音。
即使调用 AudioRecord.startRecording() 的线程已完成,SoundPool 也会停止播放声音。在我调用 AudioRecord.stopRecording() 之前,它不会再次播放声音。我想同时做这两件事。鉴于我正在播放的声音是短音,我认为 SoundPool 是正确的 class 使用。如果有人知道 Android UI 按钮 class 是如何播放声音的,我可以复制它,它应该可以工作。
这是在最新的 Android Studio 1.0.2
模拟器中
编辑:MediaPlayer 更糟,它在调用 AudioRecord.startRecording() 和 后失败,它的延迟比 SoundPool 长得多(当不同时录制时。)我知道 SoundPool.play() 由于日志语句而被定期调用。
这只是模拟器。
它适用于物理 Android 设备。
我正在使用 AudioRecord 录制麦克风数据,同时使用 SoundPool 播放声音。我的问题是:当我在 AudioRecord 上调用 startRecording() 时,SoundPool 变得不稳定或完全停止。当我调用 stopRecording() 时,所有提示音都会立即进入。我应该使用更好的图书馆吗?我注意到应用程序中的按钮仍然有响应,并且仍然能够播放它们的默认声音。
即使调用 AudioRecord.startRecording() 的线程已完成,SoundPool 也会停止播放声音。在我调用 AudioRecord.stopRecording() 之前,它不会再次播放声音。我想同时做这两件事。鉴于我正在播放的声音是短音,我认为 SoundPool 是正确的 class 使用。如果有人知道 Android UI 按钮 class 是如何播放声音的,我可以复制它,它应该可以工作。
这是在最新的 Android Studio 1.0.2
模拟器中编辑:MediaPlayer 更糟,它在调用 AudioRecord.startRecording() 和 后失败,它的延迟比 SoundPool 长得多(当不同时录制时。)我知道 SoundPool.play() 由于日志语句而被定期调用。
这只是模拟器。 它适用于物理 Android 设备。