Android拍照、录像、录音代码范例

View Code
  1 package com.cons.dcg.collect;
  2 
  3 import java.io.File;
  4 import java.text.SimpleDateFormat;
  5 import java.util.*;
  6 import android.app.*;
  7 import android.content.Intent;
  8 import android.database.Cursor;
  9 import android.net.Uri;
 10 import android.os.AsyncTask;
 11 import android.os.Bundle;
 12 import android.os.Environment;
 13 import android.provider.MediaStore;
 14 import android.view.*;
 15 import android.widget.*;
 16 
 17 public class RecordActivity extends Activity implements OnClickListener {
 18 
 19         private static final int RESULT_CAPTURE_IMAGE = 1;// 照相的requestCode
 20         private static final int REQUEST_CODE_TAKE_VIDEO = 2;// 摄像的照相的requestCode
 21         private static final int RESULT_CAPTURE_RECORDER_SOUND = 3;// 录音的requestCode
 22        
 23         private String strImgPath = "";// 照片文件绝对路径
 24         private String strVideoPath = "";// 视频文件的绝对路径
 25         private String strRecorderPath = "";// 录音文件的绝对路径
 26 
 27         @Override
 28         protected void onCreate(Bundle savedInstanceState) {
 29                 super.onCreate(savedInstanceState);
 30                 this.setContentView(R.layout.problem_report);
 31         }
 32 
 33         @Override
 34         protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 35                 super.onActivityResult(requestCode, resultCode, data);
 36                 switch (requestCode) {
 37                 case RESULT_CAPTURE_IMAGE://拍照
 38                         if (resultCode == RESULT_OK) {
 39                                 Toast.makeText(this, strImgPath, Toast.LENGTH_SHORT).show();
 40                         }
 41                         break;
 42                 case REQUEST_CODE_TAKE_VIDEO://拍摄视频
 43                         if (resultCode == RESULT_OK) {
 44                                 Uri uriVideo = data.getData();
 45                                 Cursor cursor=this.getContentResolver().query(uriVideo, null, null, null, null);
 46                                 if (cursor.moveToNext()) {
 47                                         /** _data:文件的绝对路径 ,_display_name:文件名 */
 48                                         strVideoPath = cursor.getString(cursor.getColumnIndex("_data"));
 49                                         Toast.makeText(this, strVideoPath, Toast.LENGTH_SHORT).show();
 50                                 }
 51                         }
 52                         break;
 53                 case RESULT_CAPTURE_RECORDER_SOUND://录音
 54                         if (resultCode == RESULT_OK) {
 55                                 Uri uriRecorder = data.getData();
 56                                 Cursor cursor=this.getContentResolver().query(uriRecorder, null, null, null, null);
 57                                 if (cursor.moveToNext()) {
 58                                         /** _data:文件的绝对路径 ,_display_name:文件名 */
 59                                         strRecorderPath = cursor.getString(cursor.getColumnIndex("_data"));
 60                                         Toast.makeText(this, strRecorderPath, Toast.LENGTH_SHORT).show();
 61                                 }
 62                         } 
 63                         break;
 64                 }
 65         }
 66        
 67        
 68 
 69         /**
 70          * 照相功能
 71          */
 72         private void cameraMethod() {
 73                 Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 74                 strImgPath = Environment.getExternalStorageDirectory().toString() + "/CONSDCGMPIC/";//存放照片的文件夹
 75                 String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".jpg";//照片命名
 76                 File out = new File(strImgPath);
 77                 if (!out.exists()) {
 78                         out.mkdirs();
 79                 }
 80                 out = new File(strImgPath, fileName);
 81                 strImgPath = strImgPath + fileName;//该照片的绝对路径
 82                 Uri uri = Uri.fromFile(out);
 83                 imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
 84                 imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
 85                 startActivityForResult(imageCaptureIntent, RESULT_CAPTURE_IMAGE);
 86 
 87         }
 88 
 89         /**
 90          * 拍摄视频
 91          */
 92         private void videoMethod() {
 93                 Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
 94                 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
 95                 startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO);
 96         }
 97 
 98         /**
 99          * 录音功能
100          */
101         private void soundRecorderMethod() {
102                 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
103                 intent.setType("audio/amr");
104                 startActivityForResult(intent, RESULT_CAPTURE_RECORDER_SOUND);
105         }
106 
107         /**
108          * 提示信息
109          * @param text
110          * @param duration
111          */
112         private void showToast(String text, int duration) {
113                 Toast.makeText(ProblemReport.this, text, duration).show();
114         }
115 }
原文地址:https://www.cnblogs.com/myphoebe/p/2470304.html