У меня странная проблема, и я не могу найти ответ.
Я использовал 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. Я знаю о возможности записать аудио через байты в другой файл и объединить его после, но это не так просто, и я попробую в случае последнего варианта.