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

fmms 13年前
     <pre class="brush:java; toolbar: true; auto-links: false;">package com.cons.dcg.collect;  import java.io.File; import java.text.SimpleDateFormat; import java.util.*; import android.app.*; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.view.*; import android.widget.*;  public class RecordActivity extends Activity implements OnClickListener {          private static final int RESULT_CAPTURE_IMAGE = 1;// 照相的requestCode         private static final int REQUEST_CODE_TAKE_VIDEO = 2;// 摄像的照相的requestCode         private static final int RESULT_CAPTURE_RECORDER_SOUND = 3;// 录音的requestCode                 private String strImgPath = "";// 照片文件绝对路径         private String strVideoPath = "";// 视频文件的绝对路径         private String strRecorderPath = "";// 录音文件的绝对路径          @Override         protected void onCreate(Bundle savedInstanceState) {                 super.onCreate(savedInstanceState);                 this.setContentView(R.layout.problem_report);         }          @Override         protected void onActivityResult(int requestCode, int resultCode, Intent data) {                 super.onActivityResult(requestCode, resultCode, data);                 switch (requestCode) {                 case RESULT_CAPTURE_IMAGE://拍照                         if (resultCode == RESULT_OK) {                                 Toast.makeText(this, strImgPath, Toast.LENGTH_SHORT).show();                         }                         break;                 case REQUEST_CODE_TAKE_VIDEO://拍摄视频                         if (resultCode == RESULT_OK) {                                 Uri uriVideo = data.getData();                                 Cursor cursor=this.getContentResolver().query(uriVideo, null, null, null, null);                                 if (cursor.moveToNext()) {                                         /** _data:文件的绝对路径 ,_display_name:文件名 */                                         strVideoPath = cursor.getString(cursor.getColumnIndex("_data"));                                         Toast.makeText(this, strVideoPath, Toast.LENGTH_SHORT).show();                                 }                         }                         break;                 case RESULT_CAPTURE_RECORDER_SOUND://录音                         if (resultCode == RESULT_OK) {                                 Uri uriRecorder = data.getData();                                 Cursor cursor=this.getContentResolver().query(uriRecorder, null, null, null, null);                                 if (cursor.moveToNext()) {                                         /** _data:文件的绝对路径 ,_display_name:文件名 */                                         strRecorderPath = cursor.getString(cursor.getColumnIndex("_data"));                                         Toast.makeText(this, strRecorderPath, Toast.LENGTH_SHORT).show();                                 }                         }                          break;                 }         }                          /**          * 照相功能          */         private void cameraMethod() {                 Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);                 strImgPath = Environment.getExternalStorageDirectory().toString() + "/CONSDCGMPIC/";//存放照片的文件夹                 String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".jpg";//照片命名                 File out = new File(strImgPath);                 if (!out.exists()) {                         out.mkdirs();                 }                 out = new File(strImgPath, fileName);                 strImgPath = strImgPath + fileName;//该照片的绝对路径                 Uri uri = Uri.fromFile(out);                 imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);                 imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);                 startActivityForResult(imageCaptureIntent, RESULT_CAPTURE_IMAGE);          }          /**          * 拍摄视频          */         private void videoMethod() {                 Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);                 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);                 startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO);         }          /**          * 录音功能          */         private void soundRecorderMethod() {                 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);                 intent.setType("audio/amr");                 startActivityForResult(intent, RESULT_CAPTURE_RECORDER_SOUND);         }          /**          * 提示信息          * @param text          * @param duration          */         private void showToast(String text, int duration) {                 Toast.makeText(ProblemReport.this, text, duration).show();         } }</pre>    <br />