Android拍照、录像、录音代码范例
- <p>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;
- }
- }
- }</p>
界面布局:
- <?xml version="1.0" encoding="utf-8"?>
- <ScrollView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <Button
- android:id="@+id/ButtonShot"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="拍照"/>
- <Button
- android:id="@+id/ButtonVideo"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="录像"/>
- <Button
- android:id="@+id/ButtonRecorder"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="录音"/>
- </LinearLayout>
- </ScrollView>
manifest添加权限:
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
- <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
- <uses-permission android:name="android.permission.GET_TASKS"></uses-permission>
- <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
- <uses-permission android:name="android.permission.CAMERA"></uses-permission>
Android拍照、录像、录音代码范例的更多相关文章
- Android WebView 上传各种文件(包括拍照 录像 录音 文件 音乐 等,用到图片或拍照的,可以参考下)
我也是从网上扒下来的,经过多次实验,找到了个好用的.网上能搜到最多的也就是这个解决方案,我英文不好,也没仔细研究,但大多数都是出自这: http://stackoverflow.com/questio ...
- Android拍照,录制视频,相机简单功能实现
1.效果图,功能没有录制出来. 基本实现了拍照,录制视频,前后摄像头切换的功能,可以转屏,聚焦. 代码在最下面,可以看代码,运行apk看实际效果. 2.权限不能忘 <uses-permissio ...
- 【Android】【录音】Android录音--AudioRecord、MediaRecorder
[Android][录音]Android录音--AudioRecord.MediaRecorder Android提供了两个API用于实现录音功能:android.media.AudioRecord. ...
- 我的Android进阶之旅------>Android拍照小例子
今天简单的学习了一下android拍照的简单实现. 当然该程序是个小例子,非常简单,没有什么复杂的操作,但是可以学习到Android 拍照API流程. 1.在布局文件中添加一个 surfaceView ...
- android——拍照,相册图片剪切其实就这么简单
接触android这么久了.还没有真正的浩浩看看android拍照,相册图片剪切到底是怎么回事,每次都是从别人的代码一扣,就过来了.其实,谷歌提供的API已经很强大.只需要用的好,就那么几句就可以搞定 ...
- 简单的 Android 拍照并显示以及获取路径后上传
简单的 Android 拍照并显示以及获取路径后上传 Activity 中的代码,我只贴出重要的事件部分代码 public void doPhoto(View view) { destoryBimap ...
- 功能强大的图片截取修剪神器:Android SimpleCropView及其实例代码重用简析(转)
功能强大的图片截取修剪神器:Android SimpleCropView及其实例代码重用简析 SimpleCropView是github上第一个第三方开源的图片修剪截取利器,功能强大,设计良好.我个人 ...
- [Android] 拍照、截图、保存并显示在ImageView控件中
近期在做Android的项目,当中部分涉及到图像处理的内容.这里先讲述怎样调用Camera应用程序进行拍照,并截图和保存显示在ImageView控件中以及遇到的困难和解决方法. PS:作者购买 ...
- android 拍照上传文件 原生定位
最近公司需要一个android拍照上传和定位功能的的单一功能页面,一开始选择ionic cordova angular的一套H5框架,但是遇到和上传文件报错的问题,bug找了一天没找到原因,怀疑是io ...
随机推荐
- Net作业调度-----Quartz.Net
一:业务需求: 项目需要在不同时刻,执行一个或很多个不同的作业. Windows执行计划这时并不能很好的满足需求了,迫切需要一个更为强大,方便管理,集群部署的作业调度框架. 二:介绍 Quartz一个 ...
- HTTP请求错误大全
HTTP 400 - 请求无效HTTP 401.1 - 未授权:登录失败 HTTP 401.2 - 未授权:服务器配置问题导致登录失败 HTTP 401.3 - ACL 禁止访问资源 HTTP 401 ...
- 安装webmin
wget http://nchc.dl.sourceforge.net/project/webadmin/webmin/1.740/webmin-1.740.tar.gz 解压缩文件,命令是:tar ...
- 为什么要urlencode
为什么要urlencode 1.为了正常获取值 字符 特殊字符的含义 URL编码 & 分隔不同的变量值对 %26 = 用来连接键和值 %3D ? 表示查询字符串的开始 %3F # 用来标志 ...
- C#指针转换
下表显示了预定义的隐式指针转换. 隐式转换可能在多种情形下发生,包括调用方法时和在赋值语句中. 隐式指针转换 From To 任何指针类型 void* null 任何指针类型 显式指针转换 ...
- 关于IE条件注释(译)
本文翻译自此篇文章.翻译纯属业余. 许多网站为了确保他们的站点能够在不同的浏览器上有不同的显示效果而使用特征检测,一些传统的网站使用其他技术,诸如在服务器或客户端上使用脚本去检测浏览器类型.在这里我们 ...
- 【转发】构建高可伸缩性的WEB交互式系统(中)
原文转自:http://kb.cnblogs.com/page/503953/ 在<构建高可伸缩性的WEB交互式系统>的第一篇,我们介绍了Web交互式系统中平台的可伸缩性.本文将描述模块的 ...
- C语言----变量及作用域 、 指针 、 指针和数组 、 进程空间 、 字符串
1 使用程序来模拟放球.取球的问题 1.1 问题 栈是一种特殊的线性表,它的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称为运算受限的线性表. 栈的定义是限制仅在表的一端进行插入和删 ...
- Event Logging
编号:1001 时间:2016年3月29日16:24:33 功能:Event Logging 技术简介 URL:http://blog.csdn.net/colorknight/article/det ...
- 使用innerHTML生成的script节点不会发出请求与执行text属性
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...