2015-09-17 6 views
0

Я хочу записать видео, включая аудио, в приложение для Android. До сих пор я мог записывать видео, используя код из другого места на этом сайте, но я не смог включить звук. Как я могу записать оба? Код, который я использую (Xamarin C#) для настройки медиа-рекордера, приведен ниже. Это немного грубо и готово в данный момент.Как вы можете записывать видео и аудио с помощью Android Media Player

private void InitRecorder(Surface surface) 
    { 
     // It is very important to unlock the camera before doing setCamera 
     // or it will results in a black preview 
     if (mCamera == null) 
     { 
      mCamera = Camera.Open(); 
      mCamera.Unlock(); 
     } 

     if (mMediaRecorder == null) 
      mMediaRecorder = new MediaRecorder(); 

     mMediaRecorder.SetPreviewDisplay(surface); 
     mMediaRecorder.SetCamera(mCamera); 

     mMediaRecorder.SetVideoSource(VideoSource.Default); 
     mMediaRecorder.SetOutputFormat(OutputFormat.Mpeg4); 
     mMediaRecorder.SetVideoEncoder(VideoEncoder.H264); 
     mMediaRecorder.SetVideoEncodingBitRate(512 * 1000); 
     mMediaRecorder.SetVideoFrameRate(30); 
     mMediaRecorder.SetVideoSize(640, 480); 
     mMediaRecorder.SetOutputFile(VIDEO_PATH_NAME); 

     try 
     { 
      mMediaRecorder.Prepare(); 
     } 
     catch (Exception ex) 
     { 
      // This is thrown if the previous calls are not called with the 
      // proper order 

     } 

     mInitSuccesful = true; 
    } 

Разрешения:

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 

Спасибо!

ответ

0

Вам необходимо установить источники звука. Добавьте ниже код в свой метод InitRecorder().

mMediaRecorder.SetAudioSource(AudioSource.Mic); 
mMediaRecorder.SetAudioEncoder(AudioEncoder.AmrNb);