`
rayln
  • 浏览: 424708 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MediaRecorder录制音频

 
阅读更多
一个录音的小程序!!

Main.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.recorder"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".RecorderActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
	<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
</manifest>


RecorderActivity.java
package com.recorder;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaRecorder;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

public class RecorderActivity extends Activity {
	/** Called when the activity is first created. */  
    private ListView mListView = null;  
    private Button btn_start = null;  
    private Button btn_stop = null;  
    private MediaRecorder mMediaRecorder = null;  
    private List<String> rec = new ArrayList<String>();// 存放录音文件  
    private File home = null;  
    private File path = null;  
    private String temp = "recaudio_";// 临时文件前缀  
  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        mListView = (ListView) this.findViewById(R.id.listView1);  
        btn_start = (Button) this.findViewById(R.id.start);  
        btn_stop = (Button) this.findViewById(R.id.stop);  
        // 是否存在SD卡  
        if (Environment.getExternalStorageState().equals(  
                Environment.MEDIA_MOUNTED)) {  
            home = Environment.getExternalStorageDirectory();  
            MusicList();  
        } else {  
            Toast.makeText(this, "请先插入SD卡", Toast.LENGTH_LONG).show();  
            return;  
        }  
        btn_start.setOnClickListener(new Button.OnClickListener() {  
  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                try {  
                    // 创建录音临时文件  
                    path = File.createTempFile(temp, ".amr", home);  
                    setTitle("=="+path.getAbsolutePath());  
                    mMediaRecorder = new MediaRecorder();  
                      
                    mMediaRecorder  
                            .setAudioSource(MediaRecorder.AudioSource.MIC);// 设置数据来源,麦克风  
                    mMediaRecorder  
                            .setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);// 设置格式  
                    mMediaRecorder  
                            .setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);// 设置编码  
                    mMediaRecorder.setOutputFile(path.getAbsolutePath());// 设置输出文件路径  
                    mMediaRecorder.prepare();  
                    mMediaRecorder.start();  
                } catch (IOException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
            }  
  
        });  
        btn_stop.setOnClickListener(new Button.OnClickListener() {  
  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                mMediaRecorder.stop();  
                mMediaRecorder.release();  
                mMediaRecorder = null;  
                MusicList();  
            }  
  
        });  
        mListView.setOnItemClickListener(new OnItemClickListener(){  
  
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  
                    long arg3) {  
                // TODO Auto-generated method stub  
                String path = home+File.separator+rec.get(arg2);  
                File f = new File(path);  
                PlayMusic(f);  
            }  
              
        });  
    }  
  
    /** 
     * 显示列表 
     */  
    public void MusicList() {  
        File[] f = home.listFiles(new MusicFilter());  
                  rec.clear();  
        for (int i = 0; i < f.length; i++) {  
            File file = f[i];  
            rec.add(file.getName());  
        }  
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,  
                android.R.layout.simple_list_item_1, rec);  
        mListView.setAdapter(adapter);  
    }  
  
    /** 
     * 播放录音文件 
     * @param file 
     */  
    public void PlayMusic(File file){  
        Intent intent = new Intent();  
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
        intent.setAction(Intent.ACTION_VIEW);  
        intent.setDataAndType(Uri.fromFile(file), "audio");  
        this.startActivity(intent);  
    }  
    class MusicFilter implements FilenameFilter {  
  
        public boolean accept(File dir, String filename) {  
            // TODO Auto-generated method stub  
            return (filename.endsWith(".amr"));  
        }  
  
    } 
}
分享到:
评论

相关推荐

    Android移动开发-使用MediaRecorder录制音频的实现

    为了在Android应用中录制音频,Android提供了MediaRecorder类,使用MediaRecorder录制音频的过程很简单,步骤如下: Step1:创建MediaRecorder对象; Step2:调用MediaRecorder对象的setAudioSource()方法设置声音...

    Android使用AudioRecord、MediaRecorder录制音频

    以下是使用MediaRecorder录制AAC音频的主要步骤: 1. **配置MediaRecorder**: 设置音频源、输出格式(AAC)、音频编码、输出文件路径等。 2. **预览和准备**: 调用`setPreviewDisplay()`(如果需要预览)和`prepare...

    MediaRecorder录制视频.rar

    在本例中,"MediaRecorder录制视频.rar"是一个压缩包,包含了一个完整的Android项目,演示了如何使用MediaRecorder录制视频。 MediaRecorder的使用步骤通常分为以下几个阶段: 1. **初始化**: 首先,需要创建一个...

    Android MediaRecorder 录制视频 socket发送

    在本场景中,我们关注的是如何使用MediaRecorder录制视频并将其通过Socket发送到其他设备或服务器。以下是对这一主题的详细阐述: 1. **Android MediaRecorder**: - **初始化**:MediaRecorder实例化后,需要进行...

    Android利用MediaRecorder录音

    在Android平台上,MediaRecorder是一个非常重要的类,它用于处理多媒体数据的录制,包括音频、视频以及图像。在本文中,我们将深入探讨如何利用MediaRecorder来实现Android应用中的录音功能。 首先,我们需要理解...

    android 录制.wav格式音频文件

    `ExtAudioRecorder`是Android系统提供的一种扩展音频记录器,它允许开发者以更高级别的控制来录制音频,相比系统默认的`MediaRecorder`类,提供了更多的定制选项。下面我们将深入探讨如何使用`ExtAudioRecorder`来...

    MediaRecorder录制视频和语音

    在AndroidManifest.xml中,确保添加了录制音频和视频所需的权限: ```xml ``` #### 2.2 输出文件路径 确保输出文件路径是可写的,可以使用`Environment.getExternalStorageDirectory()`获取外部存储的根目录。...

    MediaRecorder语音录制播放

    `MediaRecorder` 是Android SDK中的一个核心组件,它允许开发者录制音频、视频或者捕获图像,然后保存到本地文件。在进行语音录制时,`MediaRecorder` 提供了设置音频源、编码格式、输出文件路径等关键参数的功能。 ...

    Android多媒体功能开发-使用MediaRecorder类录制音频

    本文将深入探讨如何使用MediaRecorder类来录制音频。 **MediaRecorder概述** MediaRecorder是一个Android系统类,它允许开发者录制音频、视频或者从相机捕获图像。这个类提供了对多种输出格式的支持,如3GP、MP4等...

    android用MediaRecoder录制音频

    总的来说,使用Android的MediaRecorder录制音频是一个涉及多个步骤的过程,需要正确设置参数、处理权限、以及可能的格式转换。通过熟练掌握这些知识点,开发者可以创建功能完善的音频录制应用。

    MediaRecorder视频录制

    在Android平台上,MediaRecorder是一个非常重要的工具类,用于录制音频、视频或同时录制音频和视频。这个"MediaRecorder视频录制"项目,显然专注于利用MediaRecorder实现后台视频录制功能。在Android Studio环境下,...

    MediaRecorder音视频实时采集

    通过MediaRecorder,可以实现音频和视频的实时采集和录制。 二、音视频实时采集的主要思路 音视频实时采集的主要思路是利用MediaRecorder的setOutputFile方法来实现实时采集。在Android系统中,TCP Socket可以看作...

    Android录制音频转mp3格式

    综上所述,Android录制音频转MP3格式的过程包括使用MediaRecorder进行音频录制,通过FFmpeg进行格式转换,以及妥善管理文件存储。理解并熟练掌握这些技术,能帮助开发者实现高质量的音频处理功能。

    使用MediaRecorder实现在录制视频并压缩解码

    在Android平台上,MediaRecorder是一个非常重要的工具类,用于处理多媒体数据的录制,包括视频和音频。本篇文章将详细探讨如何使用MediaRecorder实现视频录制,并进行压缩解码。 首先,了解MediaRecorder的基本工作...

    android录制视频音频存储于sd卡并点击播放实例

    `MediaRecorder`是Android SDK中的一个核心组件,它允许开发者录制音频、视频或者同时录制两者。在这个实例中,我们首先要初始化`MediaRecorder`对象,然后设置其各种参数,包括源(Source)、输出格式...

    Android MediaRecorder Demo1

    在Android开发中,`MediaRecorder` 是一个非常重要的类,用于录制音频、视频或混合媒体。这个`Android MediaRecorder Demo1` 是一个基础的录音应用示例,旨在帮助初学者了解如何使用`MediaRecorder` API。如果你是...

    Android中使用MediaRecorder进行录像详解

    MediaRecorder类是Android提供给开发者的一个便捷的API,允许应用程序录制音频和视频。使用MediaRecorder进行视频录制通常包括以下几个步骤:准备录制环境、设置MediaRecorder参数、开始和停止录制,以及处理录制...

    2011.10.19——— android 显示一行内容并录制其音频

    总之,这个博客可能讲解了如何在Android应用中结合TextView显示文本和MediaRecorder录制音频,同时可能还涵盖了文件读取的操作。开发者可以参考这些步骤来创建一个简单的读取文本并录制音频的应用。

Global site tag (gtag.js) - Google Analytics