Android MediaRecorder.AudioSource.CAMCORDER的并行使用

Android MediaRecorder.AudioSource.CAMCORDER的并行使用,android,audio,audio-recording,Android,Audio,Audio Recording,我有一些奇怪的问题,找不到答案。 我使用wowza进行直播。它使用insideAudioRecord recorder=new AudioRecord(this.mAudioSource,…),默认情况下mAudioSource为5(如MediaRecorder.AudioSource.CAMCORDER),工作正常,但同时我需要在设备内存中使用音频录制此视频,视频质量更高 对于内部记录,我使用MediaRecorder mWZCameraView.getCamera().get

我有一些奇怪的问题,找不到答案。 我使用wowza进行直播。它使用inside
AudioRecord recorder=new AudioRecord(this.mAudioSource,…)
,默认情况下
mAudioSource
为5(如
MediaRecorder.AudioSource.CAMCORDER
),工作正常,但同时我需要在设备内存中使用音频录制此视频,视频质量更高

对于内部记录,我使用MediaRecorder

        mWZCameraView.getCamera().getPlatformDevice().unlock();

        mMediaRecorder = new MediaRecorder();
        mMediaRecorder.setCamera(mWZCameraView.getCamera().getPlatformDevice());

        //mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);

        mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

        //mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

        mMediaRecorder.setVideoEncodingBitRate(15000000);
        mMediaRecorder.setVideoFrameRate(30);
        mMediaRecorder.setVideoSize(1920, 1080);

        try {
            mMediaRecorder.prepare();
        } catch (Exception e) {
            // This is thrown if the previous calls are not called with the
            // proper order
            e.printStackTrace();
        } finally {
            mMediaRecorder.start();
        }
正如您在评论中看到的
setAudioSource
,在这种情况下,live video获取音频,而设备上的视频无法获取音频。如果打开
setAudioSource
setAudioEncoder
我的实时视频将没有音频记录,并且在有音频的设备上

我尝试了音频源和音频编码器的不同组合,但它总是在其中一个视频中录制音频

如果可以同时使用摄像机的话,我找不到答案


另外,我知道在另一个文件中通过字节录制音频并在之后合并音频的选项,但这并不容易,我会在最后一个选项中尝试。

似乎我找到了答案,也许这对某人有帮助。在这里写下答案:,“Android设备基于将打开的音频输入流数量限制为1”

Wowza在录音机内部用于获取音频,当我添加到mediaRecorder
setAudioSource
时,它看起来也尝试使用录音机。 因此,该选项将callback设置为wowza,如
mWZAudioDevice.registerAudioSampleListener(新的WZAudioDevice.AudioSampleListener())
以从audioRecord获取字节[]