Android拍照、錄像、錄音代碼范例

fmms 12年前發布 | 28K 次閱讀 Android Android開發 移動開發

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>

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!