java中初始化MediaRecorder的实现方法

网友投稿 306 2023-03-23


java中初始化MediaRecorder的实现方法

java中初始化MediaRecorder

实现代码:

private boolean initializeVideo() {

Log.v(TAG, "initializeVideo");

if (mSurfaceHolder == null) {

Log.v(TAG, "SurfaceHolder is null");

return false;

}

mMediaRecorderRecording = true;

if (mMediaRecorder == null)

mMediaRecorder = new MediaRecorder();

else

mMediaRecorder.reset();

if (mCamera != null) {

if (Integer.parseInt(Build.VERSION.SDK) >= 8)

VideoCameraNew2.reconnect(mCamera);

mCamera.release();

mCamera = null;

}

if (useFront && Integer.parseInt(Build.VERSION.SDK) >= 5) {

if (isAvailableSprintFFC)

{

try

{

Method method = Class.forName("android.hardware.HtcFrontFacingCamera").getDeclaredMethod("getCamera", null);

mCamera = (Camera) method.invoke(null, null);

}

catch (Exception ex)

{

Log.d(TAG, ex.toString());

}

} else {

mCamera = Camera.open();

Camera.Parameters parameters = mCamera.getParameters();

parameters.set("camera-id", 2);

mCamera.setParameters(parameters);

}

VideoCameraNew.unlock(mCamera);

mMediaRecorder.setCamera(mCamera);

mVideoPreview.setOnClickListener(this);

}

mVideoPreview.setOnLongClickListener(this);

mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

mMediaRecorder.setOutputFile(sender.getFileDescriptor());

mMediaRecorder.setVideoFrameRate(20);

if (videoQualityHigh) {

mMediaRecorder.setVideoSize(352,288);

} else {

mMediaRecorder.setVideoSize(176,144);

}

mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);

mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());

try {

mMediaRecorder.prepare();

mMediaRecorder.setOnErrorListener(this);

mMediaRecorder.start();

} catch (IOException exception) {

releaseMediaRecorder();

finish();

return false;

}

return true;

}

private boolean initializeVideo() {

Log.v(TAG, "initializeVideo");

if (mSurfaceHolder == null) {

Log.v(TAG, "SurfaceHolder is null");

return false;

}

mMediaRecorderRecording = true;

if (mMediaRecorder == null)

mMediaRecorder = new MediaRecorder();

else

mMediaRecorder.reset();

if (mCamera != null) {

if (Integer.parseInt(Build.VERSION.SDK) >= 8)

VideoCameraNew2.reconnect(mCamera);

mCamera.release();

mCamera = null;

}

if (useFront && Integer.parseInt(Build.VERSION.SDK) >= 5) {

if (ishttp://AvailableSprintFFC)

{

try

{

Method method = Class.forName("android.hardware.HtcFrontFacingCamera").getDeclaredMethod("getCamera", null);

mCamera = (Camera) method.invoke(null, null);

}

catch (Exception ex)

{

Log.d(TAG, ex.toString());

}

} else {

mCamera = Camera.open();

Camera.Parameters parameters = mCamera.getParameters();

parameters.set("camera-id", 2);

mCamera.setParameters(parameters);

}

VideoCameraNew.unlock(mCamera);

mMediaRecorder.setCamera(mCamera);

mVideoPreview.setOnClickListener(this);

}

mVideoPreview.setOnLongClickListener(this);

mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

mMediaRecorder.setOutputFile(sender.getFileDescriptor());

mMediaRecorder.setVideoFrameRate(20);

if (videoQualityHigh) {

mMediaRecorder.setVideoSize(352,288);

} else {

mMediaRecorder.setVideoSize(176,144);

}

mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);

mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());

try {

mMediaRecorder.prepare();

mMediaRecorder.setOnErrorListener(this);

mMediaRecorder.start();

} catch (IOException exception) {

releaseMediaRecorder();

finish();

return false;

}

return true;

}

private void releaseMediaRecorder() {

Log.v(TAG, "Releasing media recorder.");

if (mMediaRecorder != null) {

mMediaRecorder.reset();

if (mCamera != null) {

if (Integer.parseInt(Build.VERSION.SDK) >= 8)

VideoCameraNew2.reconnect(mCamera);

mCamera.release();

mCamera = null;

}

mMediaRecorder.release();

mMediaRecorder = null;

}

}

public void onError(MediaRecorder mr, int what, int extra) {

if (what == MediaRecorder.MEDIA_RECORDER_ERROR_UNKNOWN) {

finish();

}

}

private void releaseMediaRecorder() {

ECvhVIo Log.v(TAG, "Releasing media recorder.");

if (mMediaRecorder != null) {

mMediaRecorder.reset();

if (mCamera != null) {

if (Integer.parseInt(Build.VERSION.SDK) >= 8)

VideoCameraNew2.reconnect(mCamera);

mCamera.release();

mCamera = null;

}

mMediaRecorder.release();

mMediaRecorder = null;

}

}

public void onError(MediaRecorder mr, int what, int extra) {

if (what == MediaRecorder.MEDIA_RECORDER_ERROR_UNKNOWN) {

finish();

}

}

private void stopVideoRecording() {

LoECvhVIog.v(TAG, "stopVideoRecording");

if (mMediaRecorderRecording || mMediaRecorder != null) {

Receiver.listener_video = null;

t.interrupt();

RtpStreamSender.delay = 0;

if (mMediaRecorderRecording && mMediaRecorder != null) {

try {

mMediaRecorder.setOnErrorListener(null);

mMediaRecorder.setOnInfoListener(null);

mMediaRecorder.stop();

} catch (RuntimeException e) {

Log.e(TAG, "stop fail: " + e.getMessage());

}

mMediaRecorderRecording = false;

}

releaseMediaRecorder();

}

}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:c 接口开发(c# 开发接口)
下一篇:Java实现的3des加密解密工具类示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~