本文整理匯總了Java中android.media.MediaRecorder.setVideoEncodingBitRate方法的典型用法代碼示例。如果您正苦於以下問題:Java MediaRecorder.setVideoEncodingBitRate方法的具體用法?Java MediaRecorder.setVideoEncodingBitRate怎麽用?Java MediaRecorder.setVideoEncodingBitRate使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類android.media.MediaRecorder
的用法示例。
在下文中一共展示了MediaRecorder.setVideoEncodingBitRate方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: recordVideo
import android.media.MediaRecorder; //導入方法依賴的package包/類
public void recordVideo(VideoStartCallback videoStartCallback, VideoStopCallback videoStopCallback, VideoErrorCallback videoErrorCallback) {
try {
this.videoStartCallback = videoStartCallback;
this.videoStopCallback = videoStopCallback;
this.videoErrorCallback = videoErrorCallback;
if(mCameraDevice == null || !mTextureView.isAvailable() || mPreviewSize == null){
this.videoErrorCallback.onVideoError("Camera not ready.");
return;
}
videoFile = Environment.getExternalStorageDirectory() + "/" + formatter.format(new Date()) + ".mp4";
mMediaRecorder = new MediaRecorder();
//mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setOutputFile(videoFile);
mMediaRecorder.setVideoEncodingBitRate(10000000);
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
//mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
if(swappedDimensions) {
mMediaRecorder.setOrientationHint(INVERSE_ORIENTATIONS.get(mDisplayOrientation));
} else {
mMediaRecorder.setOrientationHint(ORIENTATIONS.get(mDisplayOrientation));
}
mMediaRecorder.prepare();
closePreviewSession();
createCameraRecordSession();
} catch(IOException ex) {
Log.d(TAG, ex.getMessage());
}
}
示例2: initRecord
import android.media.MediaRecorder; //導入方法依賴的package包/類
private void initRecord() {
try {
mMediaRecorder = new MediaRecorder();
mMediaRecorder.reset();
mMediaRecorder.setCamera(mCamera);
mMediaRecorder.setOnErrorListener(this);
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//視頻源
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);//音頻源
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);//視頻輸出格式 也可設為3gp等其他格式
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//音頻格式
mMediaRecorder.setVideoSize(mWidthPixel, mHeightPixel);//設置分辨率
// mMediaRecorder.setVideoFrameRate(25);// 設置每秒幀數 這個設置有可能會出問題,有的手機不支持這種幀率就會錄製失敗,這裏使用默認的幀率,當然視頻的大小肯定會受影響
if (mPictureSize < 3000000) {//這裏設置可以調整清晰度
mMediaRecorder.setVideoEncodingBitRate(3 * 1024 * 512);
} else if (mPictureSize <= 5000000) {
mMediaRecorder.setVideoEncodingBitRate(2 * 1024 * 512);
} else {
mMediaRecorder.setVideoEncodingBitRate(1 * 1024 * 512);
}
mMediaRecorder.setOrientationHint(90);//輸出旋轉90度,保持豎屏錄製
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);//視頻錄製格式
//mMediaRecorder.setMaxDuration(Constant.MAXVEDIOTIME * 1000);
mMediaRecorder.setOutputFile(mRecordFile.getAbsolutePath());
mMediaRecorder.prepare();
} catch (Exception e) {
e.printStackTrace();
releaseCamera();
}
}
示例3: prepareMediaRecorder
import android.media.MediaRecorder; //導入方法依賴的package包/類
private boolean prepareMediaRecorder() {
try {
// final Activity activity = getActivity();
//if (null == activity) return false;
//final BaseCaptureInterface captureInterface = (BaseCaptureInterface) activity;
// setCameraDisplayOrientation(mCamera.getParameters());
mMediaRecorder = new MediaRecorder();
camera.stopPreview();
camera.unlock();
mMediaRecorder.setCamera(camera);
// boolean canUseAudio = true;
//boolean audioEnabled = !mInterface.audioDisabled();
//if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
// canUseAudio = ContextCompat.checkSelfPermission(activity, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED;
// if (canUseAudio && audioEnabled) {
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
// } else if (audioEnabled) {
// Toast.makeText(getActivity(), R.string.mcam_no_audio_access, Toast.LENGTH_LONG).show();
// }
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
final CamcorderProfile profile = CamcorderProfile.get(currentCameraId, CamcorderProfile.QUALITY_HIGH);
mMediaRecorder.setOutputFormat(profile.fileFormat);
mMediaRecorder.setVideoFrameRate(profile.videoFrameRate);
mMediaRecorder.setVideoSize(previewSize.width, previewSize.height);
mMediaRecorder.setVideoEncodingBitRate(profile.videoBitRate);
mMediaRecorder.setVideoEncoder(profile.videoCodec);
mMediaRecorder.setAudioEncodingBitRate(profile.audioBitRate);
mMediaRecorder.setAudioChannels(profile.audioChannels);
mMediaRecorder.setAudioSamplingRate(profile.audioSampleRate);
mMediaRecorder.setAudioEncoder(profile.audioCodec);
Uri uri = Uri.fromFile(FileUtils.makeTempFile(
new File(Environment.getExternalStorageDirectory(),
"/Omoshiroi/videos").getAbsolutePath(),
"VID_", ".mp4"));
mMediaRecorder.setOutputFile(uri.getPath());
// if (captureInterface.maxAllowedFileSize() > 0) {
// mMediaRecorder.setMaxFileSize(captureInterface.maxAllowedFileSize());
// mMediaRecorder.setOnInfoListener(new MediaRecorder.OnInfoListener() {
// @Override
// public void onInfo(MediaRecorder mediaRecorder, int what, int extra) {
// if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED) {
// Toast.makeText(getActivity(), R.string.mcam_file_size_limit_reached, Toast.LENGTH_SHORT).show();
// stopRecordingVideo(false);
// }
// }
// });
// }
mMediaRecorder.setOrientationHint(90);
// mMediaRecorder.setPreviewDisplay(mPreviewView.getHolder().getSurface());
mMediaRecorder.prepare();
return true;
} catch (Exception e) {
camera.lock();
e.printStackTrace();
return false;
}
}