2016-10-11 135 views
1

我开发基于声音和视频记录的Android应用。我希望在预览和捕捉视频和声音时实时播放耳机中的麦克风音频。Android:同时录制原始音频和录制视频

我现在有,精细单独工作:

1)使用超能力库进行录音和播放回实时(预览和录制期间)。在场景后面,它通过将缓冲区推送到输出端(耳机)来直接与C++的AudioRecord工作。目标是实时应用原声音频效果。

2)捕获视频与mediaRecorder

当音频播放运行时,我尝试推出视频记录,它开始崩溃:

E/MediaRecorder: start failed: -2147483648 

我想,我不能推出两款记录同时处理。我认为使用AudioRecord或Superpowered lib是处理原始音频的好方法,但我无法弄清楚如何录制视频而不会与当前的音频录制相冲突。

那么有没有办法实现我的功能?

(minSdk 16)

+0

我设法同时使用没有audioSource的MediaRecorder录制视频(并避免MediaMuxer没有aspi16的复杂性MediaCodec)和我的Superpowered lib音频。之后,我使用ffmpeg合并我的两个文件。 – ddp

回答

1

根据bigflake

的MediaCodec类第一Android中4.1(API 16)变得可用。它被添加来允许直接访问设备上的媒体编解码器。

在Android 4.3(API 18)中,MediaCodec被扩展为包含一种通过Surface提供输入的方法(通过createInputSurface方法)。这允许输入来自相机预览或OpenGL ES渲染。

所以,如果有可能,请想想MinSDK增加至18,并使用AudioVideoRecordingSampleHWEncoderExperiments作为例子。

+0

其实我不能增加到18.我设法得到预览 – ddp

+0

我设法使用MediaCodec在SurfaceView上获取相机的预览,这是一个好的开始。记录我肯定会同时写入一个文件。通常我的音频部分可以同时录制。 – ddp

+0

音频和视频之间存在延迟 –