这个方法是用来获取在前一次调用此方法之后录音中出现的最大振幅,文档解释如下:

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 last call, or 0 when called for the first time。

所以这个方法是需要间隔一段时间调用一次的,也就是说,需要放在线程里面调用的。第一次调用会返回0。

最近需要使用这个方法获取音量的变化,对其返回值很好奇,查了一些资料(from stackoverflow),解释如下:

The MediaRecorder.getMaxAmplitude() function returns unsigned -bit integer values (-). Which is probably just the abs() of the CD-quality sample values that range from - to . This means that they probably represent a -bit digitalization of the electrical output from -% maximum voltage range of the microphone build into that mobile phone. Since even in one brand of mobile these microphones sometimes vary in their precise range not even to similar phones will necessarily return the same value given the same distance to the same sound source.

This value however correlates to sound pressure in Pascal since it's also a linear quantisation of the solund pressure, in the area where sound can be measured with the given microphone (which will not cover the entire sprectrum due to the limitations of the phone).

然后看了一下小米录音机的源码,它其中就有一段代码是用来反映录音音量大小的,关键代码如下:

int vuSize = MAX_VU_SIZE * mRecorder.getMaxAmplitude() / ;

其中MAX_VU_SIZE是小米将音量分的等级数,然后可以将获得的振幅处以32768(关于这个数字,前面一段资料里面有解释),这样子就能获得音量所处的等级。

Android 录音getMaxAmplitude()的更多相关文章

  1. Android 录音和播放

    今天工作上需要做一个一边录音一边播放的功能,大致原因是有一个外部设备输入音频到我们机器,然后我们机器需要马上把音频播放出来.所以了解了一些有关录音和播放的知识.接到这个任务的第一反应就是看看Andro ...

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

    Android录音有MediaRecorder和AudioRecord两种方式,前者使用方便,可以直接生成录音文件,但是录音格式为aac和amr等等,都经过压缩处理,不方便进行音频分析. 而用Audi ...

  3. 【Android】【录音】Android录音--AudioRecord、MediaRecorder

    [Android][录音]Android录音--AudioRecord.MediaRecorder Android提供了两个API用于实现录音功能:android.media.AudioRecord. ...

  4. 关于ios 和 android 录音(语音)对聊文件格式问题

    关于ios 和 android 录音(语音)对聊文件格式问题 在做语音对讲的时候,将会碰到录制语音格式的问题,这些需要跨平台我们可能需要使用双方平台都支持的格式,或者执行编码转换 解决方式如下: wa ...

  5. Android 录音器

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

  6. Android录音应用

    首先是xml布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xm ...

  7. android录音相关

    android的麦克风在现在的生活中发挥着很大的作用,打电话,视频聊天,语音识别等等. android sdk的api里提供了很方便的调用方法,下面写一个小的DEMO. 五个按钮:开始录音,停止,播放 ...

  8. android 录音的断点续传

    系统没有暂停的功能  只能把每次的录音进行拼接... package com.example.zrecord; import java.io.File;import java.io.FileInput ...

  9. Android录音--AudioRecord、MediaRecorder

    Android提供了两个API用于实现录音功能:android.media.AudioRecord.android.media.MediaRecorder. 网上有很多谈论这两个类的资料.现在大致总结 ...

随机推荐

  1. js 下不同浏览器,new Date转换结果时差

    项目中在android上使用XWalkView作为浏览器,发现在解析时间的时候解析结果和实际结果有时差. android联机调试的截图如下: PC本机调试截图如下: 从android联机调试的截图看, ...

  2. Devexpress中统一设置字体样式的方法

    #region 设置默认字体.日期格式.汉化dev DevExpress.Utils.AppearanceObject.DefaultFont = new System.Drawing.Font(&q ...

  3. Linux 用Kazam 录有声音的视频

    1.相关链接 https://launchpad.net/kazam 2.特性 录制视频的格式 : webm(vp8),mp4(h264),avi(raw),avi(huffyuv),avi(loss ...

  4. java多线程-线程间协作

    大纲: wait.notify.notifyAll Condition 生产消费者 一.wait.notify.notifyAll wait.notify.notifyAll是Object的本地fin ...

  5. jQuery练习 | 提交表单验证

    执行函数时,raturn false可阻止标签(例如超链接)的事件发生,从而达到提交表单的效果 <!DOCTYPE html> <html lang="en"&g ...

  6. selenium+Python(浏览器操作)

    1 .浏览器最大化我们知道调用启动的浏览器不是全屏的,这样不会影响脚本的执行,但是有时候会影响我们“观看”脚本的执行. #coding=utf-8 from selenium import webdr ...

  7. CSS禁止滚动条

    CSS禁止滚动条的方法: 1.完全隐藏 在<boby>里加入scroll="no",可隐藏滚动条: <boby scroll="no"> ...

  8. JavaScript弹出层

    1.这个弹出层就是一个DIV 2.看需要什么效果 2.1.如果是仅仅需要弹出层,而背后的网页同样可以点击,那么只需要一个DIV即可,效果如图: 2.2.需要一层透明背景,而后面的网页只能看不能点,效果 ...

  9. hibernate 学习笔记1

    Hibernate session1 1.连接池的最小连接数指的是连接池初始化之后,就存在的连接数,这些连接放在内存中,等待被使用.最大连接数限定了连接池中最大同时连接数量,如果超过了这个数量,则进入 ...

  10. 如何优雅地使用 VSCode 来编辑 vue 文件?

    最近有个项目使用了 Vue.js ,本来一直使用的是 PHPStorm 来进行开发,可是遇到了很多问题. 后来,果断放弃收费的 PHPStorm ,改用 vscode (Visual Stdio Co ...