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

来源:互联网 发布:淘宝售后退款时间 编辑:程序博客网 时间:2024/05/21 07:07

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 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 = "";// 录音文件的绝对路径                        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;      }     }               }



界面布局:

<?xml version="1.0" encoding="utf-8"?>  <ScrollView      xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="fill_parent"      android:layout_height="fill_parent">      <LinearLayout        android:orientation="vertical"        android:layout_width="fill_parent"        android:layout_height="fill_parent">        <Button          android:id="@+id/ButtonShot"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:text="拍照"/>        <Button          android:id="@+id/ButtonVideo"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:text="录像"/>        <Button          android:id="@+id/ButtonRecorder"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:text="录音"/>      </LinearLayout>  </ScrollView>  


manifest添加权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>   <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>   <uses-permission android:name="android.permission.GET_TASKS"></uses-permission>   <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>   <uses-permission android:name="android.permission.CAMERA"></uses-permission> 



1 0
原创粉丝点击