引用http://www.oschina.net/code/snippet_163910_6069
[文件] RecordActivity.java ~ 5KB 下载(12)
001 |
package com.cons.dcg.collect; |
002 |
003 |
import java.io.File; |
004 |
import java.text.SimpleDateFormat; |
005 |
import java.util.*; |
006 |
import android.app.*; |
007 |
import android.content.Intent; |
008 |
import android.database.Cursor; |
009 |
import android.net.Uri; |
010 |
import android.os.AsyncTask; |
011 |
import android.os.Bundle; |
012 |
import android.os.Environment; |
013 |
import android.provider.MediaStore; |
014 |
import android.view.*; |
015 |
import android.widget.*; |
016 |
017 |
public class RecordActivity extends Activity implements OnClickListener { |
018 |
019 |
private static final int RESULT_CAPTURE_IMAGE = 1 ; // 照相的requestCode |
020 |
private static final int REQUEST_CODE_TAKE_VIDEO = 2 ; // 摄像的照相的requestCode |
021 |
private static final int RESULT_CAPTURE_RECORDER_SOUND = 3 ; // 录音的requestCode |
022 |
|
023 |
private String strImgPath = "" ; // 照片文件绝对路径 |
024 |
private String strVideoPath = "" ; // 视频文件的绝对路径 |
025 |
private String strRecorderPath = "" ; // 录音文件的绝对路径 |
026 |
027 |
@Override |
028 |
protected void onCreate(Bundle savedInstanceState) { |
029 |
super .onCreate(savedInstanceState); |
030 |
this .setContentView(R.layout.problem_report); |
031 |
} |
032 |
033 |
@Override |
034 |
protected void onActivityResult( int requestCode, int resultCode, Intent data) { |
035 |
super .onActivityResult(requestCode, resultCode, data); |
036 |
switch (requestCode) { |
037 |
case RESULT_CAPTURE_IMAGE: //拍照 |
038 |
if (resultCode == RESULT_OK) { |
039 |
Toast.makeText( this , strImgPath, Toast.LENGTH_SHORT).show(); |
040 |
} |
041 |
break ; |
042 |
case REQUEST_CODE_TAKE_VIDEO: //拍摄视频 |
043 |
if (resultCode == RESULT_OK) { |
044 |
Uri uriVideo = data.getData(); |
045 |
Cursor cursor= this .getContentResolver().query(uriVideo, null , null , null , null ); |
046 |
if (cursor.moveToNext()) { |
047 |
/** _data:文件的绝对路径 ,_display_name:文件名 */ |
048 |
strVideoPath = cursor.getString(cursor.getColumnIndex( "_data" )); |
049 |
Toast.makeText( this , strVideoPath, Toast.LENGTH_SHORT).show(); |
050 |
} |
051 |
} |
052 |
break ; |
053 |
case RESULT_CAPTURE_RECORDER_SOUND: //录音 |
054 |
if (resultCode == RESULT_OK) { |
055 |
Uri uriRecorder = data.getData(); |
056 |
Cursor cursor= this .getContentResolver().query(uriRecorder, null , null , null , null ); |
057 |
if (cursor.moveToNext()) { |
058 |
/** _data:文件的绝对路径 ,_display_name:文件名 */ |
059 |
strRecorderPath = cursor.getString(cursor.getColumnIndex( "_data" )); |
060 |
Toast.makeText( this , strRecorderPath, Toast.LENGTH_SHORT).show(); |
061 |
} |
062 |
} |
063 |
break ; |
064 |
} |
065 |
} |
066 |
|
067 |
|
068 |
069 |
/** |
070 |
* 照相功能 |
071 |
*/ |
072 |
private void cameraMethod() { |
073 |
Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); |
074 |
strImgPath = Environment.getExternalStorageDirectory().toString() + "/CONSDCGMPIC/" ; //存放照片的文件夹 |
075 |
String fileName = new SimpleDateFormat( "yyyyMMddHHmmss" ).format( new Date()) + ".jpg" ; //照片命名 |
076 |
File out = new File(strImgPath); |
077 |
if (!out.exists()) { |
078 |
out.mkdirs(); |
079 |
} |
080 |
out = new File(strImgPath, fileName); |
081 |
strImgPath = strImgPath + fileName; //该照片的绝对路径 |
082 |
Uri uri = Uri.fromFile(out); |
083 |
imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri); |
084 |
imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1 ); |
085 |
startActivityForResult(imageCaptureIntent, RESULT_CAPTURE_IMAGE); |
086 |
087 |
} |
088 |
089 |
/** |
090 |
* 拍摄视频 |
091 |
*/ |
092 |
private void videoMethod() { |
093 |
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); |
094 |
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0 ); |
095 |
startActivityForResult(intent, REQUEST_CODE_TAKE_VIDEO); |
096 |
} |
097 |
098 |
/** |
099 |
* 录音功能 |
100 |
*/ |
101 |
private void soundRecorderMethod() { |
102 |
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); |
103 |
intent.setType( "audio/amr" ); |
104 |
startActivityForResult(intent, RESULT_CAPTURE_RECORDER_SOUND); |
105 |
} |
106 |
107 |
/** |
108 |
* 提示信息 |
109 |
* @param text |
110 |
* @param duration |
111 |
*/ |
112 |
private void showToast(String text, int duration) { |
113 |
Toast.makeText(ProblemReport. this , text, duration).show(); |
114 |
} |
115 |
} |