灵云人工智能论坛

 找回密码
 立即注册
搜索
查看: 4989|回复: 4

Android拍照、录像、录音代码范例 [复制链接]

Rank: 10Rank: 10Rank: 10

最佳写手 活跃会员 突出贡献 精! 入门会员 回复小达人 邮箱勋章 手机 常驻居民 最佳写手(竖)

发表于 2014-12-19 10:25:03 |显示全部楼层
RecordActivity.java
  1. package com.cons.dcg.collect;

  2. import java.io.File;
  3. import java.text.SimpleDateFormat;
  4. import java.util.*;
  5. import android.app.*;
  6. import android.content.Intent;
  7. import android.database.Cursor;
  8. import android.net.Uri;
  9. import android.os.AsyncTask;
  10. import android.os.Bundle;
  11. import android.os.Environment;
  12. import android.provider.MediaStore;
  13. import android.view.*;
  14. import android.widget.*;

  15. public class RecordActivity extends Activity implements OnClickListener {

  16.         private static final int RESULT_CAPTURE_IMAGE = 1;// 照相的requestCode
  17.         private static final int REQUEST_CODE_TAKE_VIDEO = 2;// 摄像的照相的requestCode
  18.         private static final int RESULT_CAPTURE_RECORDER_SOUND = 3;// 录音的requestCode
  19.         
  20.         private String strImgPath = "";// 照片文件绝对路径
  21.         private String strVideoPath = "";// 视频文件的绝对路径
  22.         private String strRecorderPath = "";// 录音文件的绝对路径

  23.         @Override
  24.         protected void onCreate(Bundle savedInstanceState) {
  25.                 super.onCreate(savedInstanceState);
  26.                 this.setContentView(R.layout.problem_report);
  27.         }

  28.         @Override
  29.         protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  30.                 super.onActivityResult(requestCode, resultCode, data);
  31.                 switch (requestCode) {
  32.                 case RESULT_CAPTURE_IMAGE://拍照
  33.                         if (resultCode == RESULT_OK) {
  34.                                 Toast.makeText(this, strImgPath, Toast.LENGTH_SHORT).show();
  35.                         }
  36.                         break;
  37.                 case REQUEST_CODE_TAKE_VIDEO://拍摄视频
  38.                         if (resultCode == RESULT_OK) {
  39.                                 Uri uriVideo = data.getData();
  40.                                 Cursor cursor=this.getContentResolver().query(uriVideo, null, null, null, null);
  41.                                 if (cursor.moveToNext()) {
  42.                                         /** _data:文件的绝对路径 ,_display_name:文件名 */
  43.                                         strVideoPath = cursor.getString(cursor.getColumnIndex("_data"));
  44.                                         Toast.makeText(this, strVideoPath, Toast.LENGTH_SHORT).show();
  45.                                 }
  46.                         }
  47.                         break;
  48.                 case RESULT_CAPTURE_RECORDER_SOUND://录音
  49.                         if (resultCode == RESULT_OK) {
  50.                                 Uri uriRecorder = data.getData();
  51.                                 Cursor cursor=this.getContentResolver().query(uriRecorder, null, null, null, null);
  52.                                 if (cursor.moveToNext()) {
  53.                                         /** _data:文件的绝对路径 ,_display_name:文件名 */
  54.                                         strRecorderPath = cursor.getString(cursor.getColumnIndex("_data"));
  55.                                         Toast.makeText(this, strRecorderPath, Toast.LENGTH_SHORT).show();
  56.                                 }
  57.                         }
  58.                         break;
  59.                 }
  60.         }
  61.         
  62.         

  63.         /**
  64.          * 照相功能
  65.          */
  66.         private void cameraMethod() {
  67.                 Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  68.                 strImgPath = Environment.getExternalStorageDirectory().toString() + "/CONSDCGMPIC/";//存放照片的文件夹
  69.                 String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".jpg";//照片命名
  70.                 File out = new File(strImgPath);
  71.                 if (!out.exists()) {
  72.                         out.mkdirs();
  73.                 }
  74.                 out = new File(strImgPath, fileName);
  75.                 strImgPath = strImgPath + fileName;//该照片的绝对路径
  76.                 Uri uri = Uri.fromFile(out);
  77.                 imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
  78.                 imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
  79.                 startActivityForResult(imageCaptureIntent, RESULT_CAPTURE_IMAGE);

  80.         }

  81.         /**
  82.          * 拍摄视频
  83.          */
  84.         private void videoMethod() {
  85.                 Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
  86.                 intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
  87.                 startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO);
  88.         }

  89.         /**
  90.          * 录音功能
  91.          */
  92.         private void soundRecorderMethod() {
  93.                 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
  94.                 intent.setType("audio/amr");
  95.                 startActivityForResult(intent, RESULT_CAPTURE_RECORDER_SOUND);
  96.         }

  97.         /**
  98.          * 提示信息
  99.          * @param text
  100.          * @param duration
  101.          */
  102.         private void showToast(String text, int duration) {
  103.                 Toast.makeText(ProblemReport.this, text, duration).show();
  104.         }
  105. }
复制代码


踩过的脚印

举报

Rank: 6Rank: 6

活跃会员 热心会员 射手座 丑牛 入门会员 初级会员 邮箱勋章 QQ勋章

发表于 2014-12-19 16:02:43 |显示全部楼层

Rank: 1

发表于 2014-12-23 11:06:15 |显示全部楼层
很酷

Rank: 5Rank: 5

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献

发表于 2014-12-23 16:36:01 |显示全部楼层
SO COOL

Rank: 6Rank: 6

活跃会员 热心会员 射手座 丑牛 入门会员 初级会员 邮箱勋章 QQ勋章

发表于 2014-12-24 17:13:05 |显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

Archiver|任务|灵云 ( 京ICP证030095号 )

GMT+8, 2020-1-26 03:29 , Processed in 0.077373 second(s), 22 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部