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

来源:互联网 发布:osi网络层 编辑:程序博客网 时间:2024/05/21 10:32
无鸯

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

无鸯 发布于 2011年09月06日 14时,11评/14257阅
分享到 
收藏+87
踩顶1
<无详细内容>
标签: Android SDK 精华

代码片段(1)[全屏查看所有代码]

1. [文件] RecordActivity.java ~ 5KB    下载(1557)    

001package com.cons.dcg.collect;
002 
003import java.io.File;
004import java.text.SimpleDateFormat;
005import java.util.*;
006import android.app.*;
007import android.content.Intent;
008import android.database.Cursor;
009import android.net.Uri;
010import android.os.AsyncTask;
011import android.os.Bundle;
012import android.os.Environment;
013import android.provider.MediaStore;
014import android.view.*;
015import android.widget.*;
016 
017public classRecordActivityextends Activity implementsOnClickListener {
018 
019        privatestaticfinal int RESULT_CAPTURE_IMAGE = 1;// 照相的requestCode
020        privatestaticfinal int REQUEST_CODE_TAKE_VIDEO = 2;// 摄像的照相的requestCode
021        privatestaticfinal int RESULT_CAPTURE_RECORDER_SOUND = 3;// 录音的requestCode
022        
023        privateString strImgPath ="";// 照片文件绝对路径
024        privateString strVideoPath ="";// 视频文件的绝对路径
025        privateString strRecorderPath ="";// 录音文件的绝对路径
026 
027        @Override
028        protectedvoidonCreate(Bundle savedInstanceState) {
029                super.onCreate(savedInstanceState);
030                this.setContentView(R.layout.problem_report);
031        }
032 
033        @Override
034        protectedvoidonActivityResult(intrequestCode,int resultCode, Intent data) {
035                super.onActivityResult(requestCode, resultCode, data);
036                switch(requestCode) {
037                caseRESULT_CAPTURE_IMAGE://拍照
038                        if(resultCode == RESULT_OK) {
039                                Toast.makeText(this, strImgPath, Toast.LENGTH_SHORT).show();
040                        }
041                        break;
042                caseREQUEST_CODE_TAKE_VIDEO://拍摄视频
043                        if(resultCode == RESULT_OK) {
044                                Uri uriVideo = data.getData();
045                                Cursor cursor=this.getContentResolver().query(uriVideo,null,null,null,null);
046                                if(cursor.moveToNext()) {
047                                        /** _data:文件的绝对路径 ,_display_name:文件名 */
048                                        strVideoPath = cursor.getString(cursor.getColumnIndex("_data"));
049                                        Toast.makeText(this, strVideoPath, Toast.LENGTH_SHORT).show();
050                                }
051                        }
052                        break;
053                caseRESULT_CAPTURE_RECORDER_SOUND://录音
054                        if(resultCode == RESULT_OK) {
055                                Uri uriRecorder = data.getData();
056                                Cursor cursor=this.getContentResolver().query(uriRecorder,null,null,null,null);
057                                if(cursor.moveToNext()) {
058                                        /** _data:文件的绝对路径 ,_display_name:文件名 */
059                                        strRecorderPath = cursor.getString(cursor.getColumnIndex("_data"));
060                                        Toast.makeText(this, strRecorderPath, Toast.LENGTH_SHORT).show();
061                                }
062                        }
063                        break;
064                }
065        }
066        
067        
068 
069        /**
070         * 照相功能
071         */
072        privatevoidcameraMethod() {
073                Intent imageCaptureIntent =newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
074                strImgPath = Environment.getExternalStorageDirectory().toString() +"/CONSDCGMPIC/";//存放照片的文件夹
075                String fileName =newSimpleDateFormat("yyyyMMddHHmmss").format(newDate()) +".jpg";//照片命名
076                File out =newFile(strImgPath);
077                if(!out.exists()) {
078                        out.mkdirs();
079                }
080                out =newFile(strImgPath, fileName);
081                strImgPath = strImgPath + fileName;//该照片的绝对路径
082                Uri uri = Uri.fromFile(out);
083                imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
084                imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1);
085                startActivityForResult(imageCaptureIntent, RESULT_CAPTURE_IMAGE);
086 
087        }
088 
089        /**
090         * 拍摄视频
091         */
092        privatevoidvideoMethod() {
093                Intent intent =newIntent(MediaStore.ACTION_VIDEO_CAPTURE);
094                intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,0);
095                startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO);
096        }
097 
098        /**
099         * 录音功能
100         */
101        privatevoidsoundRecorderMethod() {
102                Intent intent =newIntent(Intent.ACTION_GET_CONTENT);
103                intent.setType("audio/amr");
104                startActivityForResult(intent, RESULT_CAPTURE_RECORDER_SOUND);
105        }
106 
107        /**
108         * 提示信息
109         * @param text
110         * @param duration
111         */
112        privatevoidshowToast(String text, intduration) {
113                Toast.makeText(ProblemReport.this, text, duration).show();
114        }
115}
原创粉丝点击