`
ctfzh
  • 浏览: 31622 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多

RecordActivity.java

 

package com.cons.dcg.collect;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;
import android.app.*;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.*;
import android.widget.*;

public class RecordActivity 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 = "";// 录音文件的绝对路径

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                this.setContentView(R.layout.problem_report);
        }

        @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(ProblemReport.this, text, duration).show();
        }
}
 
分享到:
评论
2 楼 hbxflihua 2012-03-15  
很不错,不过貌似少了些东西。比如你实现 OnClickListener  接口,却没有实现其中的onClick方法。
1 楼 androidzjb 2012-01-12  
谢谢分享,

相关推荐

    android 拍照录像录音代码范例

    android 拍照录像录音代码范例,共享,希望对大家有用

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

    ast.LENGTH_SHORT).show...综上所述,这段代码提供了Android应用实现拍照、录像和录音的基本框架,开发者可以根据自己的需求在此基础上进行扩展和优化,例如添加图片和视频的预览、裁剪功能,以及对录音质量的控制等。

    Android 5.0开发范例代码大全+源码

    《Android 5.0开发范例代码大全(第4版)》提供了100多个来自实践的代码范例,并且使用完整的、现实的工作代码示例指导读者逐步学习大量实用主题。本书内容基于Android 5.0(涵盖新的Android Wear和TV SDK)进行了全面...

    Android 开发范例代码大全(第2版)(附源码)

    《Android 开发范例代码大全(第2版)》是一本深入浅出的Android开发实践指南,涵盖了Android应用开发的各个重要方面。这本书以其丰富的范例代码和详细的解释,为开发者提供了宝贵的参考资料,无论是初学者还是有...

    Android拍照视频范例

    这个"Android拍照视频范例"可能包含了多种关键的技术点,让我们逐一详细探讨。 首先,**GPS照相机**功能是现代智能手机应用的一个重要组成部分。在Android中,我们可以利用Camera API或者更现代的Camera2 API来访问...

    高清完整版 ANDROID 5.0开发范例代码大全 第4版

    ANDROID 5.0开发范例代码大全 第4版

    《Android 5.0 开发范例代码大全》源码+电子版书籍

    《Android 5.0 开发范例代码大全》源码+电子版书籍,Android 5.0开发范例代码大全 (第4版).pdfAndroid 是以 Linux 为基础的开源移动设备操作系统,主要用于智能手机和平板电脑,由 Google 成立的开放手持设..

    Android 录音程序1·

    `Android拍照、录像、录音代码范例.txt`和`新建文本文档.txt`可能是包含其他多媒体功能代码示例的文本文件,比如如何结合拍照和录像功能,或者是一些关于如何使用这些API的说明。 在开发过程中,开发者还需要熟悉...

    android应用开发范例精解

    《Android应用开发范例精解》通过通俗易懂的开发实例及项目案例,详细介绍了Android应用开发的知识体系及实用开发技术。 《Android应用开发范例精解》共14章,分为3篇。第1篇为基础篇,涵盖Android背景及开发环境和...

    《Android 5.0 开发范例代码大全》(第4版)代码

    《Android 5.0 开发范例代码大全》(第4版)是一本深度解析Android 5.0系统开发的权威书籍,包含了丰富的实例代码,旨在帮助开发者掌握Android 5.0平台上的应用开发技巧。这本书的每个章节都对应一个或多个实际的...

    《Android SDK范例大全 2-10源代码》源代码

    《Android SDK范例大全 2-10源代码》源代码

    解析Google Android SDK——智能手机开发范例手册-下载代码

    《解析Google Android SDK——智能手机开发范例手册》是一本深入探讨Android应用开发的书籍,它提供了丰富的实例,帮助开发者理解并掌握Android SDK的各种工具和技术。本文将基于书中的章节命名,如c3、c12等,来...

    Google.Android.SDK开发范例大全(第2版)_源代码

    范例可能包括使用MediaPlayer和ExoPlayer播放媒体文件,使用Camera API拍照录像,以及使用Bitmap和 Glide 库进行图片加载和显示。 5. **传感器应用**:Android设备通常配备各种传感器,如加速度计、陀螺仪、GPS等。...

    xamarin for android 简单的button计数器代码范例

    **Xamarin for Android:Button计数器代码范例** Xamarin是Microsoft开发的一款跨平台移动应用开发工具,它允许开发者使用C#语言和.NET框架来构建原生的Android、iOS和Windows应用程序。在这个"Xamarin for Android...

    Google Android SDK开发范例大全——示例代码

    "Google Android SDK开发范例大全"是一本专为开发者设计的指南,尤其对于初学者和进阶者来说,这本书提供了丰富的实践示例,帮助读者深入理解和掌握SDK的使用。第三章的内容可能涵盖了SDK中的核心组件和关键概念。 ...

    Android 开发范例代码大全(第2版)高清版

    Android开发范例代码大全(第2版)教会你如何使用行之有效的解决方案来开发一流的应用程序。首先确定问题,然后通过有效的代码示例给出详细的解决方案。更实用的是,可以将本书中的代码示例直接应用到你自己的应用...

Global site tag (gtag.js) - Google Analytics