您的位置:首页 > 移动开发 > Android开发

Android调用系统拍照,录音,摄像

2016-05-06 14:59 585 查看
虽说这几个知识很老了,但对于刚学习的我觉得有必要总结一下!

拍照功能 Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

ImagePath=Environment.getExternalStorageDirectory().toString()+”/CONSDCGMPIC/”;//获得sd卡路径-俩个斜杠里面是文件夹名 //定义图片的名字,根据当前的时间

String filename=new SimpleDateFormat(“yyyymmddhhmmss”).format(new Date()+”jpg”);

File file=new File(ImagePath);//new 一个文件路径

if(!file.exists()){//如果没有这个文件夹就创建

file.mkdirs();

}

file=new File(ImagePath,filename);//新建一个文件

ImagePath=ImagePath+filename;

Uri uri= Uri.fromFile(file);、//把文件地址转换为URI格式

//拍完照片后照片存放的地址

intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

//

intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

startActivityForResult(intent,1);

录音

Intent luyin=new Intent(Intent.ACTION_GET_CONTENT);

luyin.setType(“audio/amr”);//设置意图类型

startActivityForResult(luyin,2);

摄像机

Intent intent2 = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

intent2.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);

startActivityForResult(intent2, 3);

由于以上功能都使用了 startActivityForResult();

所以要覆盖

onActivityResult()方法

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

switch (requestCode){

//这里的1,2,3是请求码

case 1://拍照

if(resultCode==RESULT_OK){

Toast.makeText(getApplicationContext(),ImagePath,Toast.LENGTH_LONG).show();

}

break;

case 2://录音

if(resultCode==RESULT_OK){

Uri uriluyin=data.getData();

Cursor cursor=this.getContentResolver().query(uriluyin,null,null,null,null);

if (cursor.moveToNext()) {

/* _data:文件的绝对路径 ,_display_name:文件名 /

String strRecorderPath = cursor.getString(cursor.getColumnIndex(“_data”));

Toast.makeText(this, strRecorderPath, Toast.LENGTH_SHORT).show();

}

Toast.makeText(getApplicationContext(),ImagePath,Toast.LENGTH_LONG).show();

}

break;

case 3://录视频

if(resultCode==RESULT_OK){

Uri urishipin=data.getData();

Cursor cursor1=this.getContentResolver().query(urishipin,null,null,null,null);

if(cursor1.moveToNext()){

String strVideoPath= cursor1.getString(cursor1.getColumnIndex(“_data”));

Toast.makeText(getApplicationContext(),strVideoPath,Toast.LENGTH_LONG).show();

}

} break;



}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: