Android多媒体之录音

录制音频的步骤:

1、创建录音对象

2、指定录音设备(初始化状态)

3、设置录制音频的码率

4、设置录制音频的编码格式

5、设置录制音频存放的位置

6、准备录音(准备状态)

7、开始录音

8、停止录音

9、释放资源

录制声音的权限

<uses-permission android:name="android.permission.RECORD_AUDIO"/>

录制音频的状态图

public class MediaRecorderTest extends Activity {

	private MediaRecorder recorder;
	private MediaPlayer player;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.recorder);
		//1、创建录音对象
		recorder = new MediaRecorder();
		//2、指定录音设备(初始化状态)
		recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
		//3、设置录制音频的码率
		recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
		//4、设置录制音频的编码格式
		recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
		//5、设置录制音频存放的位置(这里指定手机sdcard的根目录下,文件名为music.mp3)
		recorder.setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath() + "music.mp3");
		try {
			//6、准备录音(准备状态)
			recorder.prepare();
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//对刚才的录音文件进行播放,创建播放音频对象
		player = new MediaPlayer();
		try {
			//设置要播放的音频文件
			player.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/music.mp3");
			//准备播放音频(准备状态)
			player.prepare();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void start(View view){
		recorder.start();//7、开始录音
		Toast.makeText(this, "正在录音", 0).show();
	}
	public void stop(View view){
		recorder.stop();//8、停止录音
		Toast.makeText(this, "结束录音,录音文件以保存到sdcard。", 0).show();
		recorder.release();//9、释放资源

	}

	public void play(View view){
		player.start();//开始播放刚才录制的音频
	}
}

xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="录音"
        android:onClick="start"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="停止"
        android:onClick="stop" />
    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="播放"
        android:onClick="play" />

</LinearLayout>
时间: 2024-10-10 01:57:08

Android多媒体之录音的相关文章

Android多媒体-MediaRecorder 录制音视频

不多说,直接上代码,有详细注释 MyAudioRecord.java import java.io.File; import java.io.IOException; import android.app.Activity; import android.content.ContentValues; import android.content.Intent; import android.media.MediaPlayer; import android.media.MediaRecorder

Android多媒体开发介绍(转)

Android多媒体开发介绍 转自:http://blog.csdn.net/reiliu/article/details/9060557 一.       多媒体架构 基于第三方PacketVideo公司的OpenCORE来实现,支持所有通用的音频/视频/静态图像格式,包括:MPEG4.H.264.MP3.AAC.AMR.JPG.PNG.GIF等.从功能上分为两部分,一是音/视频的回放(PlayBack),二是音视频的纪录(Recorder). CODEC(编解码器)使用OpenMAX 1L

android多媒体框架学习 详解 最新版本

一:多媒体框架概述   jellybean 的多媒体跟以前的版本,通过对比没啥变化,最大的变化是google终于舍得给multimedia建个独立的git了(framework/av),等你好久了!也体现了media 在整个android系统中的重要性!framework/av下都是些C/C++代码(libmedia,libmediaplayerservice,libstagefright),jni和 java api 还是保留在原来的位置,改革还不够彻底,但还是迈出了这一步,以后维护能更好的进

Android多媒体框架图

Android多媒体整体架构图 MediaPlayer框架图 Camera框架图 SoundRecorder框架图 VideoCamera框架图 OpenCore与Skia ALSA Audio框架图 Video Overlay框架图 Camera HAL演化图

Android多媒体框架对音乐播放器的支持

下面介绍一下Andriod多媒体框架对开发者提供的支持有哪些. 1. MediaScannerReceiver 这个广播接收者在接收到ACTION_BOOT_COMPLETED.ACTION_MEDIA_MOUNTED或 ACTION_MEDIA_SCANNER_SCAN_FILE 广播时对SD卡中的图片.音乐和视频文件进行了扫描,因为扫描不能影响用户使用,这里启动了一个服务MediaScannerService,扫描的文件类型如下: /* Audio */ addFileType("MP3&q

Android 使用MediaRecorder录音

package com.example.HyyRecord; 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 java.io.F

Android多媒体整体架构图

Android多媒体整体架构图 MediaPlayer框架图 Camera框架图 SoundRecorder框架图 VideoCamera框架图 OpenCore与Skia ALSA Audio框架图 Video Overlay框架图 Camera HAL演化图

Android多媒体访问

Android的多媒体文件主要存储在/data/data/com.android.providers.media/databases目录下,该目录下有两个db文件,一个是内部存储数据库文件(internal.db),一个是存储卡数据库(external-XXXX.db).媒体文件的操作主要是围绕着这两个数据库来进行.这两个数据库的结构是完全一模一样的. Android提供了MediaStore类,该类是一个ContentProvider,管理着设备上自带的和外部的多媒体文件,同时包含着每一个多媒

Android多媒体-播放多媒体时的前台服务

众所周知,一般我们将播放的逻辑都放入service当中,这样就能实现在后台继续播放音乐的功能.后台service被系统回收的概率相对来说比较低,但是这种情况也确实存在. 前台服务是那些被认为用户知道的并且在内存低的时候不允许系统杀死的服务.前台服务必须给状态栏提供一个通知,他被放到了"正在进行中(Ongoing)"标题之下,这就意味着直到这个服务被终止或从前台删除通知才能被解除. 例如,一个播放音乐的音乐播放器服务应该被设置在前台运行,因为用户明确的知道它们的操作.状态栏中的通知可能指