摄像头
来源:互联网 发布:苹果笔记本软件推荐 编辑:程序博客网 时间:2024/04/27 14:21
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation ="vertical" android:layout_width="fill_parent"android:layout_height ="fill_parent"><SurfaceViewandroid:id = "@+id/videoView"android:layout_width = "320px"android:layout_height = "240px"android:gravity = "center_horizontal"/>////////SurfaceView用于显示录制视频时摄像头的画面,尺寸为320*240,样式居中<LinearLayout android:orientation = "horizontal"android:layout_width = "fill_parent" android:layout_height = "wrap_content"android:gravity = "center_horizontal" android:layout_marginTop = "20dp"><Button android:id ="@+id/recordBtn"android:layout_width ="wrap_content" android:layout_height="wrap_content"android:text ="开始录制" /><Button android:id ="@+id/stopBtn" android:layout_width ="wrap_content"android:layout_height="wrap_content" android:text ="停止录制" /><Button android:id ="@+id/deleteBtn" android:layout_width ="wrap_content"android:layout_height="wrap_content" android:text ="删除录像" /></LinearLayout></LinearLayout>
package com.creative.CameraDemo;import java.io.File;import java.io.IOException;import android.app.Activity;import android.media.MediaRecorder;import android.os.Bundle;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class CameraDemoActivity extends Activity {private File _recordVideoFile;private MediaRecorder _vedioRecorder; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SurfaceView videoView = (SurfaceView)findViewById(R.id.videoView); final SurfaceHolder surfaceHolder = videoView.getHolder(); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); Button recordBtn = (Button)findViewById(R.id.recordBtn);Button stopBtn = (Button)findViewById(R.id.stopBtn);Button deleteBtn = (Button)findViewById(R.id.deleteBtn);// ��ʼ¼��recordBtn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if(_vedioRecorder == null){_vedioRecorder = new MediaRecorder();}try{_recordVideoFile = File.createTempFile("video", ".3gp");//在SD卡目录下创建一个视频文件} catch (IOException e1){e1.printStackTrace();}_vedioRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//设置视频源为摄像头_vedioRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);//设置输出格式为MPEG4_vedioRecorder.setVideoSize(320, 240);_vedioRecorder.setVideoFrameRate(30);///设置视频帧为每秒30帧_vedioRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);//设置编码格式为H264_vedioRecorder.setOutputFile(_recordVideoFile.getAbsolutePath());//设置输出文件路径_vedioRecorder.setPreviewDisplay(surfaceHolder.getSurface());//设置视频显示在SurfaceView上try{_vedioRecorder.prepare();} catch (IllegalStateException e){e.printStackTrace();} catch (IOException e){e.printStackTrace();}_vedioRecorder.start();}});// ֹͣ¼��stopBtn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){if(_vedioRecorder != null){_vedioRecorder.stop();_vedioRecorder.release();_vedioRecorder = null;}}});// ɾ��¼��deleteBtn.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){_recordVideoFile.delete();}}); }}