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]