请选择 进入手机版 | 继续访问电脑版

01BIM社区

 找回密码
 立即注册

扫一扫,访问微社区

查看: 6864|回复: 0

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

[复制链接]

14

主题

21

帖子

109

积分

注册会员

Rank: 2

积分
109
发表于 2016-10-9 16:14:41 | 显示全部楼层 |阅读模式
Android 提供了拍照,录像,录音的Activity入口,可交由手机自己控制
  • import java.io.File;  
  • import java.text.SimpleDateFormat;  
  • import java.util.Date;  
  • import android.app.Activity;  
  • import android.content.Intent;  
  • import android.database.Cursor;  
  • import android.net.Uri;  
  • import android.os.Bundle;  
  • import android.os.Environment;  
  • import android.provider.MediaStore;  
  • import android.view.View;  
  • import android.view.View.OnClickListener;  
  • import android.widget.Button;  
  • import android.widget.Toast;</p><p>public class ActivityMedia 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 = "";// 录音文件的绝对路径   
  •            
  •          Button buttonShot;  
  •          Button buttonVideo;  
  •          Button buttonRecorder;  
  •      
  •          @Override   
  •          protected void onCreate(Bundle savedInstanceState) {   
  •                  super.onCreate(savedInstanceState);   
  •                  this.setContentView(R.layout.media);   
  •                  buttonShot = (Button)findViewById(R.id.ButtonShot);  
  •                  buttonShot.setOnClickListener(this);  
  •                  buttonVideo = (Button)findViewById(R.id.ButtonVideo);  
  •                  buttonVideo.setOnClickListener(this);  
  •                  buttonRecorder = (Button)findViewById(R.id.ButtonRecorder);  
  •                  buttonRecorder.setOnClickListener(this);  
  •          }   
  •      
  •          @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(ActivityMedia.this, text, duration).show();   
  •         }</p><p>   public void onClick(View v) {  
  •     int id = v.getId();  
  •     switch(id){  
  •     case R.id.ButtonShot:  
  •      cameraMethod();  
  •      break;  
  •     case R.id.ButtonVideo:  
  •      videoMethod();  
  •      break;  
  •     case R.id.ButtonRecorder:  
  •      soundRecorderMethod();  
  •      break;  
  •     }  
  •    }   
  •            
  • }


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|01BIM社区 - 最专业的BIM技术交流平台 ( 渝ICP备15000873号 )

GMT+8, 2024-3-28 19:24 , Processed in 0.046129 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表