Android拍照、錄影、錄音代碼範例

來源:互聯網
上載者:User

package com.cons.dcg.collect;

import java.io.File;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import android.app.Activity;

import android.app.Notification;

import android.app.NotificationManager;

import android.app.PendingIntent;

import android.app.ProgressDialog;

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.KeyEvent;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Spinner;

import android.widget.Toast;

public class ProblemReport 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();

        }

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.