Created
July 21, 2015 22:05
-
-
Save syalam/6912a98424e78ff43674 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @TargetApi(Build.VERSION_CODES.HONEYCOMB) | |
| private boolean prepareVideoRecorder(){ | |
| // BEGIN_INCLUDE (configure_preview) | |
| mCamera = CameraHelper.getDefaultCameraInstance(); | |
| // We need to make sure that our preview and recording video size are supported by the | |
| // camera. Query camera to find all the sizes and choose the optimal size given the | |
| // dimensions of our preview surface. | |
| Camera.Parameters parameters = mCamera.getParameters(); | |
| List<Camera.Size> mSupportedPreviewSizes = parameters.getSupportedPreviewSizes(); | |
| Camera.Size optimalSize = CameraHelper.getOptimalPreviewSize(mSupportedPreviewSizes, | |
| mPreview.getWidth(), mPreview.getHeight()); | |
| // likewise for the camera object itself. | |
| parameters.setPreviewSize(optimalSize.width, optimalSize.height); | |
| parameters.set("fast-fps-mode", 2); | |
| mCamera.setParameters(parameters); | |
| try { | |
| // Requires API level 11+, For backward compatibility use {@link setPreviewDisplay} | |
| // with {@link SurfaceView} | |
| mCamera.setPreviewTexture(mPreview.getSurfaceTexture()); | |
| } catch (IOException e) { | |
| Log.e(TAG, "Surface texture is unavailable or unsuitable" + e.getMessage()); | |
| return false; | |
| } | |
| // END_INCLUDE (configure_preview) | |
| // BEGIN_INCLUDE (configure_media_recorder) | |
| mMediaRecorder = new MediaRecorder(); | |
| // Use the same size for recording profile. | |
| // CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_1080P); | |
| // profile.videoFrameWidth = optimalSize.width; | |
| // profile.videoFrameHeight = optimalSize.height; | |
| // Step 1: Unlock and set camera to MediaRecorder | |
| mCamera.unlock(); | |
| mMediaRecorder.setCamera(mCamera); | |
| // Step 2: Set sources | |
| mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); | |
| mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); | |
| mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); | |
| mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); | |
| mMediaRecorder.setVideoSize(optimalSize.width, optimalSize.height); | |
| mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); | |
| mMediaRecorder.setVideoFrameRate(120); | |
| // Step 4: Set output file | |
| mMediaRecorder.setOutputFile(mFile.toString()); | |
| // END_INCLUDE (configure_media_recorder) | |
| // Step 5: Prepare configured MediaRecorder | |
| try { | |
| mMediaRecorder.prepare(); | |
| } catch (IllegalStateException e) { | |
| Log.d(TAG, "IllegalStateException preparing MediaRecorder: " + e.getMessage()); | |
| releaseMediaRecorder(); | |
| return false; | |
| } catch (IOException e) { | |
| Log.d(TAG, "IOException preparing MediaRecorder: " + e.getMessage()); | |
| releaseMediaRecorder(); | |
| return false; | |
| } | |
| return true; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment