1 import android.app.Activity;
 2 import android.content.Intent;
 3 import android.content.pm.PackageManager;
 4 import android.database.Cursor;
 5 import android.net.Uri;
 6 import android.os.Bundle;
 7 import android.provider.MediaStore;
 8 import android.view.View;
 9 import android.view.View.OnClickListener;
10 import android.widget.Button;
11 import android.widget.MediaController;
12 import android.widget.VideoView;
13 
14 /*
15  * 调用系统拍照activity来录像
16  */
17 public class Main extends Activity implements OnClickListener {
18     public VideoView videoView;
19 
20     //用系统拍照activity来录像 第1步,检测Android设备是否支持照相机
21     private boolean checkCameraHardware(){
22         if (getPackageManager().hasSystemFeature(
23                        PackageManager.FEATURE_CAMERA)){
24             return true;
25         }else{
26             return false;
27         }
28     }
29     /*
30      * 用系统拍照activity来录像 事件 
31      */
32     public void onClick(View view) {
33         //用系统拍照activity来录像 第2步,准备intent的动作
34         Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
35         //用系统拍照activity来录像 第3步,启动activity,注意forResult
36         startActivityForResult(intent, 1);
37     }
38     //处理录像结果
39     @Override
40     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
41         if (requestCode == 1) {
42             if (resultCode == Activity.RESULT_OK) {
43                 //注意录像后的视频文件并没有存在intent中,而把它的路径存在数据库中.intnet中只存了uri
44                 //所以要从数据库中取出视频内容
45                 //用系统拍照activity来录像 第4步,从intent取出视频的uri
46                 Uri uri = data.getData();
47                 //用系统拍照activity来录像 第5步,得到数据库cursor
48                 Cursor cursor = this.getContentResolver().query(uri, null,null, null, null);
49 
50                 if (cursor.moveToFirst()) {
51                     //用系统拍照activity来录像 第6步,得到视频文件的路径
52                     String videoPath = cursor.getString(cursor.getColumnIndex("_data"));
53                     
54                     //用系统拍照activity来录像 第7步,用VideoView加载视频文件
55                     videoView.setVideoURI(Uri.parse(videoPath));
56                     //用系统拍照activity来录像 第8步,设置VideoView的播放控制
57                     videoView.setMediaController(new MediaController(this));
58                     //开始播放
59                     videoView.start();
60                 }
61             }
62         }
63     }
64     
65     @Override
66     public void onCreate(Bundle savedInstanceState) {
67         super.onCreate(savedInstanceState);
68         setContentView(R.layout.main);
69         Button btnTakePicture = (Button) findViewById(R.id.btnTakePicture);
70         btnTakePicture.setOnClickListener(this);
71 
72         videoView = (VideoView) findViewById(R.id.videoview);
73     }
74 }

 

相关文章: