无鸯 Android拍照、录像、录音代码范例 http://www.oschina.net/code/snippet_163910_6069

package 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 class RecordActivity extends Activity implements OnClickListener {
018 
019        private static final int RESULT_CAPTURE_IMAGE = 1;// 照相的requestCode
020        private static final int REQUEST_CODE_TAKE_VIDEO = 2;// 摄像的照相的requestCode
021        private static final int RESULT_CAPTURE_RECORDER_SOUND = 3;// 录音的requestCode
022        
023        private String strImgPath = "";// 照片文件绝对路径
024        private String strVideoPath = "";// 视频文件的绝对路径
025        private String strRecorderPath = "";// 录音文件的绝对路径
026 
027        @Override
028        protected void onCreate(Bundle savedInstanceState) {
029                super.onCreate(savedInstanceState);
030                this.setContentView(R.layout.problem_report);
031        }
032 
033        @Override
034        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
035                super.onActivityResult(requestCode, resultCode, data);
036                switch (requestCode) {
037                case RESULT_CAPTURE_IMAGE://拍照
038                        if (resultCode == RESULT_OK) {
039                                Toast.makeText(this, strImgPath, Toast.LENGTH_SHORT).show();
040                        }
041                        break;
042                case REQUEST_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                case RESULT_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        private void cameraMethod() {
073                Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
074                strImgPath = Environment.getExternalStorageDirectory().toString() + "/CONSDCGMPIC/";//存放照片的文件夹
075                String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".jpg";//照片命名
076                File out = new File(strImgPath);
077                if (!out.exists()) {
078                        out.mkdirs();
079                }
080                out = new File(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        private void videoMethod() {
093                Intent intent = new Intent(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        private void soundRecorderMethod() {
102                Intent intent = new Intent(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        private void showToast(String text, int duration) {
113                Toast.makeText(ProblemReport.this, text, duration).show();
114        }
115}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值