使用Android4.4新增新媒体功能中的音量增强器LoudnessEnhancer实现仿酷狗音乐一键强音功能

转载请注明:http://blog.csdn.net/u012854870/article/details/58604351
由于自己开发的音乐播放器,安装在公司自己生产的平板上,播放音乐的时候,当媒体音量调到最大的时候声音还是很小,后来产品就拿着酷狗音乐来,让我实现类似酷狗音乐一键增强音量功能,开始并没有思路,几经搜索打算用均衡器实现,可是代码写完后发现并没有达到想要的效果,而且发现不同类型的音乐,均衡器频段设置不同,实现起来比较麻烦,最后只能放弃,寻找新思路最后终于在文档中找到了解决方案Android4.4新增新媒体功能文档新媒体功能部分中介绍到LoudnessEnhancer(LoudnessEnhancer文档)类,发现这就是我想要的功能,算是完美解决了,现将实现代码分享如下:

public class MainActivity extends AppCompatActivity {

    // 定义播放声音的MediaPlayer
    private MediaPlayer mPlayer;
    // 定义音频响度处理类
    private LoudnessEnhancer loudnessEnhancer;
    private LinearLayout layout;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置音频流 - STREAM_MUSIC:音乐回放即媒体音量
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
        layout = new LinearLayout(this);//代码创建布局
        layout.setOrientation(LinearLayout.VERTICAL);//设置为线性布局-上下排列
        setContentView(layout);//将布局添加到 Activity
        // 创建MediaPlayer对象,并添加音频
        // 音频路径为  res/raw/test.mp3
        mPlayer = MediaPlayer.create(this, R.raw.test);
        // 开发播放音乐
        mPlayer.start();
        addButton();
    }

    private void addButton() {
        Button button = new Button(this);
        button.setText("音效增强");
        layout.addView(button);
        loudnessEnhancer = new LoudnessEnhancer(mPlayer.getAudioSessionId());
        //设置用于音频效果的目标增益
        loudnessEnhancer.setTargetGain(5000);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (loudnessEnhancer.getEnabled()) {
                    loudnessEnhancer.setEnabled(false);
                } else {
                    loudnessEnhancer.setEnabled(true);
                }
            }
        });
    }


    @Override
    protected void onPause() {
        super.onPause();
        if (isFinishing() && mPlayer != null) {
            // 释放所有对象
            loudnessEnhancer.release();
            mPlayer.release();
            mPlayer = null;
        }
    }


}

最后给出源码下载地址:CNDS

猜你喜欢

转载自blog.csdn.net/u012854870/article/details/58604351