1 public class MainActivity
extends Activity {
2
3 private MediaRecorder videoRecorder=
null;
4 private Button recorder=
null;
5 private Button stop=
null;
6 private SurfaceView surface=
null;
7 @SuppressWarnings("deprecation"
)
8 protected void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 requestWindowFeature(Window.FEATURE_NO_TITLE);
11 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
12 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//设置屏幕横向全屏显示
13 setContentView(R.layout.main);
14 videoRecorder=new MediaRecorder();
15 surface=(SurfaceView)
this.findViewById(R.id.surface);
16 recorder=(Button)
this.findViewById(R.id.recorder);
17 stop=(Button)
this.findViewById(R.id.stop);
18 surface.getHolder().setKeepScreenOn(
true);
19 surface.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
20 surface.getHolder().setFixedSize(320, 240
);
21
22 }
23 public void RecordVideo(View v)
24 {
25 switch (v.getId()) {
26 case R.id.recorder:
27
28 stop.setEnabled(
true);
29 recorder.setEnabled(
false);
30 try {
31 videoRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//设置音频的来源
32 videoRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
//设置视频的来源
33 videoRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
//设置视频的输出格式3gp
34 videoRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
//设音频的解码方式
35 videoRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
//设视频的解码方式
36 videoRecorder.setVideoFrameRate(5);
//设置每秒捕获画面的个数
37 videoRecorder.setVideoSize(480, 320);
//设置视频的大小
38 File f=
new File(Environment.getExternalStorageDirectory().getAbsolutePath(),System.currentTimeMillis()+".3gp"
);
39 videoRecorder.setOutputFile(f.getAbsolutePath());
//设置保存的路径
40 videoRecorder.setPreviewDisplay(surface.getHolder().getSurface());
//吧捕获的画面显示到surfaceView控件中
41 videoRecorder.prepare();
42 videoRecorder.start();
43 }
catch (Exception e) {
44 // TODO Auto-generated catch block
45 e.printStackTrace();
46 }
47
48 break;
49 case R.id.stop:
50 stop.setEnabled(
false);
51 recorder.setEnabled(
true);
52 if(videoRecorder!=
null)
53 {
54 videoRecorder.stop();
55 videoRecorder.release();
56 videoRecorder=
null;
57 }
58 break;
59 }
60 }
61 @Override
62 public boolean onTouchEvent(MotionEvent event) {
63 if(event.getAction()==
MotionEvent.ACTION_DOWN)
64 {
65 this.findViewById(R.id.btnLayout).setVisibility(View.VISIBLE);
66 }
67 return super.onTouchEvent(event);
68 }
69
70 @Override
71 public boolean onCreateOptionsMenu(Menu menu) {
72 // Inflate the menu; this adds items to the action bar if it is present.
73 getMenuInflater().inflate(R.menu.main, menu);
74 return true;
75 }
76
77 }
78
79 注意:activity设置好之后必须在Mainfest.xml文件中配置权限
80 <uses-permission android:name="android.permission.CAMERA"/>
81 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
82 <uses-permission android:name="android.permission.RECORD_AUDIO"/>
83 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
转载于:https://www.cnblogs.com/tianshidechibang234/p/3198911.html
相关资源:Android视频录制及播放