2 fengmeikan fengmeikan 于 2015.07.27 20:04 提问

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

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

3个回答

lzp_lrp
lzp_lrp   Ds   Rxr 2015.07.28 08:56

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;
    }

fengmeikan
fengmeikan 这样说话的声音也会影响到音乐的声音啊
2 年多之前 回复
fengmeikan
fengmeikan 这样说话的声音也会影响到音乐的声音啊
2 年多之前 回复
ljn951
ljn951   2015.07.29 11:23

AudioManager提供了方法:
publicvoidsetStreamVolume(intstreamType,intindex,intflags)其中streamType有内置的常量,去文档里面就可以看到。

AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
//通话音量
int max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_VOICE_CALL );
int current = mAudioManager.getStreamVolume( AudioManager.STREAM_VOICE_CALL );
//系统音量
max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_SYSTEM );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_SYSTEM );
//铃声音量
max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_RING );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_RING );
//音乐音量
max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_MUSIC );
Log.d(MUSIC, max : + max + current : + current);
//提示声音音量
max = mAudioManager.getStreamMaxVolume( AudioManager.STREAM_ALARM );
current = mAudioManager.getStreamVolume( AudioManager.STREAM_ALARM );

fengmeikan
fengmeikan 我需要的是音乐的实时的声音大小,不是要音量的大小
2 年多之前 回复
fengmeikan
fengmeikan   2015.08.05 17:58

有没有大神以前做过或者有类似的 求指导下, 谢谢啦!

bzb123321
bzb123321 能否分享下经验
大约一年之前 回复
bzb123321
bzb123321 您好, 您现在知道是怎么获取的了吗
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片