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

思捻如枫 2011-08-19

package com.cons.dcg.collect;

importjava.io.File;

importjava.text.SimpleDateFormat;

importjava.util.ArrayList;

importjava.util.Date;

importjava.util.HashMap;

importjava.util.List;

importandroid.app.Activity;

importandroid.app.Notification;

importandroid.app.NotificationManager;

importandroid.app.PendingIntent;

importandroid.app.ProgressDialog;

importandroid.content.Intent;

importandroid.database.Cursor;

importandroid.net.Uri;

importandroid.os.AsyncTask;

importandroid.os.Bundle;

importandroid.os.Environment;

importandroid.provider.MediaStore;

importandroid.view.KeyEvent;

importandroid.view.Menu;

importandroid.view.MenuInflater;

importandroid.view.MenuItem;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.AdapterView;

importandroid.widget.ArrayAdapter;

importandroid.widget.Button;

importandroid.widget.EditText;

importandroid.widget.Spinner;

importandroid.widget.Toast;

publicclassProblemReportextendsActivityimplementsOnClickListener{

privatestaticfinalintRESULT_CAPTURE_IMAGE=1;//照相的requestCode

privatestaticfinalintREQUEST_CODE_TAKE_VIDEO=2;//摄像的照相的requestCode

privatestaticfinalintRESULT_CAPTURE_RECORDER_SOUND=3;//录音的requestCode

privateStringstrImgPath="";//照片文件绝对路径

privateStringstrVideoPath="";//视频文件的绝对路径

privateStringstrRecorderPath="";//录音文件的绝对路径

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

this.setContentView(R.layout.problem_report);

}

@Override

protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){

super.onActivityResult(requestCode,resultCode,data);

switch(requestCode){

caseRESULT_CAPTURE_IMAGE://拍照

if(resultCode==RESULT_OK){

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

}

break;

caseREQUEST_CODE_TAKE_VIDEO://拍摄视频

if(resultCode==RESULT_OK){

UriuriVideo=data.getData();

Cursorcursor=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;

caseRESULT_CAPTURE_RECORDER_SOUND://录音

if(resultCode==RESULT_OK){

UriuriRecorder=data.getData();

Cursorcursor=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;

}

}

/**

*照相功能

*/

privatevoidcameraMethod(){

IntentimageCaptureIntent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);

strImgPath=Environment.getExternalStorageDirectory().toString()+"/CONSDCGMPIC/";//存放照片的文件夹

StringfileName=newSimpleDateFormat("yyyyMMddHHmmss").format(newDate())+".jpg";//照片命名

Fileout=newFile(strImgPath);

if(!out.exists()){

out.mkdirs();

}

out=newFile(strImgPath,fileName);

strImgPath=strImgPath+fileName;//该照片的绝对路径

Uriuri=Uri.fromFile(out);

imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT,uri);

imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1);

startActivityForResult(imageCaptureIntent,RESULT_CAPTURE_IMAGE);

}

/**

*拍摄视频

*/

privatevoidvideoMethod(){

Intentintent=newIntent(MediaStore.ACTION_VIDEO_CAPTURE);

intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,0);

startActivityForResult(intent,REQUEST_CODE_TAKE_VIDEO);

}

/**

*录音功能

*/

privatevoidsoundRecorderMethod(){

Intentintent=newIntent(Intent.ACTION_GET_CONTENT);

intent.setType("audio/amr");

startActivityForResult(intent,RESULT_CAPTURE_RECORDER_SOUND);

}

/**

*提示信息

*@paramtext

*@paramduration

*/

privatevoidshowToast(Stringtext,intduration){

Toast.makeText(ProblemReport.this,text,duration).show();

}

}

:博客涉及的源码请在千寻资源库www.qxzyk.com 下载获取,谢谢支持。

相关推荐