Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android錄音,拍照,攝像

Android錄音,拍照,攝像

編輯:關於Android編程

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity 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.activity_main);
		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(MainActivity.this, text, duration).show();
	}

	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;
		}
	}

}

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved