Android 录音

MediaRecorder类具体解释

移动电话通常具有一个麦克风和照相机,和Android该系统将能够利用这些硬件的优点来记录的音频和视频。

添加支持的音频和视频录制,Android该系统提供了MediaRecorder的类。该类的使用也很easy。以下让我们来了解一下这个类

一、结构

java.lang.Object->android.media.MediaRecorder

二、类概述:

用于录制音频和视频的一个类。

三、状态图:

说明:

与MediaPlayer类很相似MediaRecorder也有它自己的状态图。

以下是关于MediaRecorder的各个状态的介绍:

1、Initial:初始状态,当使用new()方法创建一个MediaRecorder对象或者调用了reset()方法时,该MediaRecorder对象处于Initial状态。

在设定视频源或者音频源之后将转换为Initialized状态。另外,在除Released状态外的其他状态通过调用reset()方法都能够使MediaRecorder进入该状态。

2、Initialized:已初始化状态,能够通过在Initial状态调用setAudioSource()或setVideoSource()方法进入该状态。在这个状态能够通过setOutputFormat()方法设置输出格式。此时MediaRecorder转换为DataSourceConfigured状态。另外,通过reset()方法进入Initial状态。

3、DataSourceConfigured:数据源配置状态,这期间能够设定编码方式、输出文件、屏幕旋转、预览显示等等。

能够在Initialized状态通过setOutputFormat()方法进入该状态。

另外,能够通过reset()方法回到Initial状态。或者通过prepare()方法到达Prepared状态。

4、Prepared:就绪状态,在DataSourceConfigured状态通过prepare()方法进入该状态。

在这个状态能够通过start()进入录制状态。另外,能够通过reset()方法回到Initialized状态。

5、Recording:录制状态,能够在Prepared状态通过调用start()方法进入该状态。另外,它能够通过stop()方法或reset()方法回到Initial状态。

6、Released:释放状态(官方文档给出的词叫做Idle state 空暇状态),能够通过在Initial状态调用release()方法来进入这个状态,这时将会释放全部和MediaRecorder对象绑定的资源。

7、Error:错误状态。当发生错误的时候进入这个状态,它能够通过reset()方法进入Initial状态。

提示:与MediaPlayer相似使用MediaRecorder录音录像时须要严格遵守状态图说明中的函数调用先后顺序,在不同的状态调用不同的函数,否则会出现异常。

以下一个实例代码描写叙述了的创建过程:

/**
	 * 開始录音
	 */
	private void startRecording()
	{
		BaseUtils.printd(TAG, "startRecording");
		mParams.mFileName = mParams.mFileDir + System.currentTimeMillis() + "amr";
		mRecorder = new MediaRecorder();
		mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
		mRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
		mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
		mRecorder.setOutputFile(mParams.mFileName);
		mRecorder.setOnInfoListener(mRecorderOnInfoListener);

		if(mParams.mMaxFileSize > 0)
		{
			mRecorder.setMaxFileSize(mParams.mMaxFileSize);
		}

		if(mParams.mMaxDurationSize > 0)
		{
			mRecorder.setMaxDuration(mParams.mMaxDurationSize);
		}

		try
		{
			mRecorder.prepare();

			mRecorder.start();
			mObtainDecibelThread = new ObtainDecibelThread();
			mObtainDecibelThread.start();
		}
		catch (Exception e)
		{
			BaseUtils.printe("Exception", "Exception:" + e);
		}

	}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-25 06:36:55

Android 录音的相关文章

Android录音--AudioRecord、MediaRecorder

Android提供了两个API用于实现录音功能:android.media.AudioRecord.android.media.MediaRecorder. 网上有很多谈论这两个类的资料.现在大致总结下: 1.AudioRecord 主要是实现边录边播(AudioRecord+AudioTrack)以及对音频的实时处理(如会说话的汤姆猫.语音) 优点:语音的实时处理,可以用代码实现各种音频的封装 缺点:输出是PCM语音数据,如果保存成音频文件,是不能够被播放器播放的,所以必须先写代码实现数据编码

通过Android录音进行简单音频分析

Android录音有MediaRecorder和AudioRecord两种方式,前者使用方便,可以直接生成录音文件,但是录音格式为aac和amr等等,都经过压缩处理,不方便进行音频分析. 而用AudioRecord可以得到PCM编码的原音频数据,可以用FFT对数据进行处理,简单分析声音的频率. 1.AndroidRecord录音 private static final String FILE_NAME = "MainMicRecord"; private static final i

android录音相关

android的麦克风在现在的生活中发挥着很大的作用,打电话,视频聊天,语音识别等等. android sdk的api里提供了很方便的调用方法,下面写一个小的DEMO. 五个按钮:开始录音,停止,播放,删除录音,保存(令存为) recordBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try{ _recordAudioFile=File.createTempFile("

Android 录音(MediaRecorder)与播放(MediaPlayer)

通过MediaRecorder和MediaPlayer实现声音的录制和播放,代码比较简单,直接贴代码.xml文件里面只有四个按钮就不贴了. UI 代码: VoiceActivity.class package com.zy.ione; import com.zy.media.UPlayer; import com.zy.media.URecorder; import android.app.Activity; import android.os.Bundle; import android.os

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.In

Android 录音器

Android自带的mediarecoder录音器不含pause暂停功能,解决方法:录制多个音频片段,最后合成一个文件. 参照 : http://blog.csdn.net/a601445984/article/details/44239717

Android录音实现——使用AtudioRecord

最近在做android中录音录屏的功能,以前也是从未接触多媒体这块,然后从不会到一点点的摸索,参考大神们的代码,到现在算是入门了,今天就总结一下android中的录音部分,后面总结录屏. 在android中实现录音共有三种方式: 通过意图捕获音频.这是android中最简单的一种方式,就是通过一个意图利用已有的.提供录制功能的应用程序.android系统中都会再带一个录音程序,我们可以通过意图来调用这个录音程序,从而实现录音功能. MediaRecorder类实现录音.MediaRecorder

Android 录音和摄像头权限适配【转】

本文转载自:http://blog.csdn.net/self_study/article/details/52965045 最近在研究权限适配的相关内容,整理以前的权限博客如下:  android permission权限与安全机制解析(上)  android permission权限与安全机制解析(下)  Android 悬浮窗权限各机型各系统适配大全  这篇博客主要是介绍录音权限和摄像头权限的适配,android permission权限与安全机制解析(下)这篇博客中我介绍到了 6.0 之

Android 录音getMaxAmplitude()

这个方法是用来获取在前一次调用此方法之后录音中出现的最大振幅,文档解释如下: Returns the maximum absolute amplitude that was sampled since the last call to this method. Call this only after the setAudioSource(). 很多人遇到问题,说是返回值为0,文档中解释如下:the maximum absolute amplitude measured since the la