Android中实时获取扬声器分贝大小 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Android中实时获取扬声器分贝大小

我要获取我的音乐播放的时候的实时声音分贝大小,有没有大神有办法或者有demo给我看一下,在网上找了很多都没有一个解决方案

展开
收起
爵霸 2016-06-14 13:19:38 3495 0
1 条回答
写回答
取消 提交回答
  • 爵霸

    AudioRecord 可以用来监听环境声音。通过计算每段声音可以求声贝

        public double countDb (short[] data)  
        {  
            float BASE=32768f;
            float maxAmplitude = 0;
    
            for (int i = 0; i < data.length; i++) 
            {
                maxAmplitude += data[i] * data[i];
            }
            maxAmplitude=(float)Math.sqrt(maxAmplitude/data.length);
            float ratio=maxAmplitude / BASE;
            float db =0;
            if(ratio>0)
            {
                db = (float) (20 * Math.log10(ratio))+100;
            }
    
            return db;
        }
    
    2019-07-17 19:37:17
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
手机卫士性能优化方案-Android篇
立即下载
Android内存泄露自动化链路分析组件——Probe
立即下载
Android内存泄漏自动化链路分析组件Probe
立即下载