展会信息港展会大全

android MediaRecorder 视频录制
来源:互联网   发布日期:2015-09-29 10:18:16   浏览:2336次  

导读:package com.example.camera;import java.io.IOException;import android.app.Activity;import android.media.MediaRecorder;import android.os.Bundle;import android.view.SurfaceHolder;import androi......

package com.example.camera;

import java.io.IOException;

import android.app.Activity;

import android.media.MediaRecorder;

import android.os.Bundle;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

public class MainActivity extends Activity implements SurfaceHolder.Callback {

private SurfaceView mSurfaceview = null; // SurfaceView对象:(视图组件)视频显示

private SurfaceHolder mSurfaceHolder = null; // SurfaceHolder对象:(抽象接口)SurfaceView支持类

private MediaRecorder mediarecorder;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mSurfaceview = (SurfaceView) findViewById(R.id.surfaceview);

mSurfaceHolder = mSurfaceview.getHolder(); // 绑定SurfaceView,取得SurfaceHolder对象

mSurfaceHolder.addCallback(this); // SurfaceHolder加入回调接口

mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);// 設置顯示器類型,setType必须设置

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

}

@Override

protected void onPause() {

super.onPause();

mediarecorder.stop();

mediarecorder.release();

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

mediarecorder = new MediaRecorder();// 创建mediarecorder对象

// 设置录制视频源为Camera(相机)

mediarecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

// 设置录制完成后视频的封装格式THREE_GPP为3gp.MPEG_4为mp4

mediarecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

// 设置录制的视频编码h263 h264

mediarecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

// 设置视频录制的分辨率。必须放在设置编码和格式的后面,否则报错

// mediarecorder.setVideoSize(176, 144);

// 设置录制的视频帧率。必须放在设置编码和格式的后面,否则报错

mediarecorder.setVideoFrameRate(20);

mediarecorder.setPreviewDisplay(mSurfaceHolder.getSurface());

// 设置视频文件输出的路径

mediarecorder.setOutputFile("/sdcard/love.3gp");

try {

mediarecorder.prepare();

mediarecorder.start();

} catch (IllegalStateException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

}

}

赞助本站

人工智能实验室

相关热词: MediaRecorder 视频 录制

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港