并行使用 MediaRecorder.AudioSource.CAMCORDER
Parallel using of MediaRecorder.AudioSource.CAMCORDER
我有一些奇怪的问题,找不到答案。
我用wowza做直播。它在 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
,在这种情况下,实时视频会获取音频,而设备上的视频不会获取音频。如果打开 setAudioSource
& setAudioEncoder
我的实时视频将没有录音,但在有音频的设备上。
我尝试了 AudioSource 和 AudioEncoder 的不同组合,但它总是在其中一个视频中录制音频。
我找不到答案,如果可以并行使用 CAMCORDER。
PS。我知道通过另一个文件中的字节记录音频并在之后合并它的选项,但这并不容易,我会在最后一个选项的情况下尝试它。
看来我找到了答案,也许对某些人有帮助。答案写在这里:, "Android devices are based on limit the number of open audio input streams to 1".
Wowza 在 audioRecorder 内部使用来获取音频,当我添加到 mediaRecorder setAudioSource
时它看起来也尝试使用 audioRecorder。
所以选项设置回调到 wowza 就像 mWZAudioDevice.registerAudioSampleListener(new WZAudioDevice.AudioSampleListener())
从 audioRecord.
得到 byte[]
我有一些奇怪的问题,找不到答案。
我用wowza做直播。它在 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
,在这种情况下,实时视频会获取音频,而设备上的视频不会获取音频。如果打开 setAudioSource
& setAudioEncoder
我的实时视频将没有录音,但在有音频的设备上。
我尝试了 AudioSource 和 AudioEncoder 的不同组合,但它总是在其中一个视频中录制音频。
我找不到答案,如果可以并行使用 CAMCORDER。
PS。我知道通过另一个文件中的字节记录音频并在之后合并它的选项,但这并不容易,我会在最后一个选项的情况下尝试它。
看来我找到了答案,也许对某些人有帮助。答案写在这里:, "Android devices are based on limit the number of open audio input streams to 1".
Wowza 在 audioRecorder 内部使用来获取音频,当我添加到 mediaRecorder setAudioSource
时它看起来也尝试使用 audioRecorder。
所以选项设置回调到 wowza 就像 mWZAudioDevice.registerAudioSampleListener(new WZAudioDevice.AudioSampleListener())
从 audioRecord.