文档章节

录音工具类(AudioRecordUtils)

军歌
 军歌
发布于 2014/02/14 10:53
字数 171
阅读 191
收藏 2
public class AudioRecordUtils {
	
	static final private double EMA_FILTER = 0.6;

	private MediaRecorder mRecorder = null;
	private double mEMA = 0.0;

	public void start(String path,String name) {
		
		if (mRecorder == null) {
			mRecorder = new MediaRecorder();
			//指定音频来源(麦克风)
			mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
			//指定音频输出格式
			mRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
			//指定音频编码方式
			mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
			
			//指定录制音频输出信息的文件
			mRecorder.setOutputFile(path+"/"+name);
			try {
				mRecorder.prepare();
				mRecorder.start();
				mEMA = 0.0;
			} catch (IllegalStateException e) {
				System.out.print(e.getMessage());
			} catch (IOException e) {
				System.out.print(e.getMessage());
			}
		}
	}

	public void stop() {
		if (mRecorder != null) {
			mRecorder.stop();
			mRecorder.release();
			mRecorder = null;
		}
	}

	public void pause() {
		if (mRecorder != null) {
			mRecorder.stop();
		}
	}

	public void start() {
		if (mRecorder != null) {
			mRecorder.start();
		}
	}

	public double getAmplitude() {
		if (mRecorder != null)
			// 获取在前一次调用此方法之后录音中出现的最大振幅
			return (mRecorder.getMaxAmplitude() / 2700.0);
		else
			return 0;
	}

	public double getAmplitudeEMA() {
		double amp = getAmplitude();
		mEMA = EMA_FILTER * amp + (1.0 - EMA_FILTER) * mEMA;
		return mEMA;
	}
}



© 著作权归作者所有

军歌
粉丝 9
博文 86
码字总数 43501
作品 0
深圳
程序员
私信 提问
手机影音第十七天,实现歌词同步

代码已托管到码云,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 效果图: 有一个小的遗憾,就是该MP3文件和歌词文件要在同一路径下,才能读取到歌词,否则读...

老婆的宝宝
2017/07/31
0
0
局部战争还是全面入侵?如何看待搜狗录音翻译笔?

科技产品的更新换代频率之快,差不多是每个人都能感受到的。但在极速迭代的硬件大潮中,有没有产品技术陷入停滞,仅仅依靠市场刚需维持增长速度的电子产品呢?其实仔细找找就会发现,这样的产...

脑极体
2018/05/17
0
0
Android仿微信录音功能,自定义控件的设计技巧

最近由于需要做一个录音功能(/嘘 悄悄透露一下,千万别告诉红薯,就是新版本的OSC客户端噢),起初打算采用仿微信的录音方式,最后又改成了QQ的录音方式,之前的微信录音控件也就白写了[大哭...

postdep
2014/12/09
0
0
android进阶4step2:Android音视频处理——音视频录制与播放

录音 MediaRecoder Android有一个内置的麦克风,通过它可以捕获音频和存储,或在手机进行播放。 有很多方法可以做到这一点,但最常见的方法是通 过MediaRecorder类。 MediaRecoder常用方法 ...

发条鱼
2018/12/17
0
0
Android音视频开发之使用AudioRecord采集音频

AudioRecord 是 Android 系统提供的用于实现录音功能的 API,官方文档是这么解释的: AndioRecord类的主要功能是让各种Java应用能够管理音频资源,以便它们通过此类能够录制声音相关的硬件所...

落英坠露
2018/10/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里云安全中心:自动化安全闭环实现全方位默认安全防护

随着数字化转型的深入发展,企业云上资产越来越多元化,随之而来的是安全威胁的复杂化,企业需要花费大量精力进行告警分析、威胁检测、病毒查杀等工作。Gartner曾指出,随着安全警报的复杂性...

迷你芊宝宝
22分钟前
1
0
好程序员web前端分享值得参考的css理论:OOCSS、SMACSS与BEM

好程序员web前端分享值得参考的css理论:OOCSS、SMACSS与BEM 最近在The Sass Way里看到了Modular CSS typography一文,发现文章在开头部分就提到了OOCSS、 SMACSS、 BEM、这3个词。“如果还不...

好程序员IT
24分钟前
2
0
Gradle的安装和在idea的配置

下载gradle 下载地址:http://services.gradle.org/distributions/ 。我下载的是 gradle-5.4-bin.zip。然后解压到G:\gradle-5.4 配置环境变量。 有3个环境变量: GRADLE_HOME 等于gradle的安...

王坤charlie
25分钟前
1
0
聊聊分布式事务,再说说解决方案

前言 最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行 CAP 的下一阶段的开发工作,不过目前已经告一段落了。 接下来还是开始我们今天的话题,说说分布式事务...

群星纪元
27分钟前
2
0
分布式项目(6)consul注册中心

lelinked
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部