免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1796 | 回复: 1
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-08-12 14:02 |只看该作者 |倒序浏览
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. }
复制代码

论坛徽章:
80
20周年集字徽章-庆
日期:2020-10-28 14:09:1215-16赛季CBA联赛之北京
日期:2020-10-28 13:32:5315-16赛季CBA联赛之北控
日期:2020-10-28 13:32:4815-16赛季CBA联赛之天津
日期:2020-10-28 13:13:35黑曼巴
日期:2020-10-28 12:29:1520周年集字徽章-周	
日期:2020-10-31 15:10:0720周年集字徽章-20	
日期:2020-10-31 15:10:07ChinaUnix元老
日期:2015-09-29 11:56:3020周年集字徽章-年
日期:2020-10-28 14:14:56
2 [报告]
发表于 2015-08-13 09:35 |只看该作者
楼主可以啊 。学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP