android 设置音效EQ

本文转载自:http://blog.sina.com.cn/s/blog_67d95f40010113ez.html

 

跟上一篇一样,完全参考自google源码,如果可以自己去看是最好的

否则你就要看我的个人理解了

 

EQ应该就是频率均衡器,适当的调整和控制可以设置重低音,古典,摇滚之类的感觉

主要的类就是android.media.audiofx.Equalizer;
            //many application can control equalizer ,so we need priotiry

//首先初始化这个类,需要两个参数,第一个是优先级,默认是0.所谓优先级就是说当有多个应用同时去控制EQ的时候,就靠优先级来判断了。第二个参数是音乐的sessionId.
            mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
            mEqualizer.setEnabled(true);

//可以得到当前Equalizer 引擎所支持的控制频率的标签数目。

            short bands = mEqualizer.getNumberOfBands();

//可以得到的最小频率(我这是-15dB)
            short minEQLevel = mEqualizer.getBandLevelRange()[0];
//可以得到的最大频率(我这是15dB)

            short maxEQLevel = mEqualizer.getBandLevelRange()[1];


        for (short i = 0; i < bands; i++) {
            final short band = i;

//通过标签可以顺次的获得所有你所支持的频率的名字比如 60Hz 230Hz

            freqTextView.setText((mEqualizer.getCenterFreq(band) / 1000) + " Hz");

            ......

//接下来就是最重要的方法 设置频率的值了,需要提供标签号,和设置的大小data。这个data要记住其最小值是上面得到的minEQLevel,最大值是maxEQLevel.

            mEqualizer.setBandLevel(band, (short) data);

        }

 

以上就可以搞定了。

如果你不知道 自己手上那些频率都代表什么效果 我就顺手转载网上的知识吧

 

均衡器分段后的每个部分的作用:
    1. 20Hz--60Hz部分

    这一段提升能给音乐强有力的感觉,给人很响的感觉,如雷声。是音乐中强劲有力的感觉。如果提升过高,则又会混浊不清,造成清晰度不佳,特别是低频响应差和低频过重的音响设备。

    2. 60Hz--250Hz部分

    这段是音乐的低频结构,它们包含了节奏部分的基础音,包括基音、节奏音的主音。它和高中音的比例构成了音色结构的平衡特性。提升这一段可使声音丰满,过度提升会发出隆隆声。衰减这两段会使声音单薄。

    3. 250Hz--2KHz部分

    这段包含了大多数乐器的低频谐波,如果提升过多会使声音像电话里的声音。如把600Hz和1kHz过度提升会使声音像喇叭的声音。如把3kHz提升过多会掩蔽说话的识别音,即口齿不清,并使唇音“mbv”难以分辨。如把1kHz和3kHz过分提升会使声音具有金属感。由于人耳对这一频段比较敏感,通常不调节这一段,过分提升这一段会使听觉疲劳。

    4. 2KHz--4kHz部分

    这段频率属中频,如果提升得过高会掩盖说话的识别音,尤其是3kHz提升过高,会引起听觉疲劳。

    5. 4kHz--5KHz部分

    这是具有临场感的频段,它影响语言和乐器等声音的清晰度。提升这一频段,使人感觉声源与听者的距离显得稍近了一些;衰减5kHz,就会使声音的距离感变远;如果在5kHz左右提出升6dB,则会使整个混合声音的声功率提升3dB。

    6. 6kHz--16kHz部分

    这一频段控制着音色的明亮度,宏亮度和清晰度。一般来说提升这几段使声音宏亮,但不清晰,不可能会引起齿音过重,衰减时声音变得清晰,但声音不宏亮。

你可能感兴趣的:(android,音乐,application,google,引擎,电话)