longhaisu 发表于 2016-10-9 16:14:41

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

Android 提供了拍照,录像,录音的Activity入口,可交由手机自己控制

[*]import java.io.File;
[*]import java.text.SimpleDateFormat;
[*]import java.util.Date;
[*]import android.app.Activity;
[*]import android.content.Intent;
[*]import android.database.Cursor;
[*]import android.net.Uri;
[*]import android.os.Bundle;
[*]import android.os.Environment;
[*]import android.provider.MediaStore;
[*]import android.view.View;
[*]import android.view.View.OnClickListener;
[*]import android.widget.Button;
[*]import android.widget.Toast;</p><p>public class ActivityMedia extends Activityimplements 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 = "";// 录音文件的绝对路径   
[*]         
[*]         Button buttonShot;
[*]         Button buttonVideo;
[*]         Button buttonRecorder;
[*]   
[*]         @Override   
[*]         protected void onCreate(Bundle savedInstanceState) {   
[*]               super.onCreate(savedInstanceState);   
[*]               this.setContentView(R.layout.media);   
[*]               buttonShot = (Button)findViewById(R.id.ButtonShot);
[*]               buttonShot.setOnClickListener(this);
[*]               buttonVideo = (Button)findViewById(R.id.ButtonVideo);
[*]               buttonVideo.setOnClickListener(this);
[*]               buttonRecorder = (Button)findViewById(R.id.ButtonRecorder);
[*]               buttonRecorder.setOnClickListener(this);
[*]         }   
[*]   
[*]         @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(ActivityMedia.this, text, duration).show();   
[*]      }</p><p>   public void onClick(View v) {
[*]    int id = v.getId();
[*]    switch(id){
[*]    case R.id.ButtonShot:
[*]   cameraMethod();
[*]   break;
[*]    case R.id.ButtonVideo:
[*]   videoMethod();
[*]   break;
[*]    case R.id.ButtonRecorder:
[*]   soundRecorderMethod();
[*]   break;
[*]    }
[*]   }   
[*]         
[*]}


页: [1]
查看完整版本: Android拍照、录像、录音代码范例