Android 4.4新メディア機能のボリュームエンハンサーLoudnessEnhancerを使用して、クール犬音楽のワンタッチ強音機能を実現


転載は以下のことを明記してください.http://blog.csdn.net/u012854870/article/details/58604351 自分で开発した音楽プレーヤーのため、会社が自分で生产したタブレットにインストールして、音楽を放送する时、メディアの音量が最大になる时音はまだとても小さくて、それから制品はクールな犬の音楽を持ってきて、私にクールな犬の音楽のような1ボタンの音量の机能を强化させます最初は考えられず、何度も検索してイコライザで実現しようとしたが、コードを書き終わった後、所望の効果が得られなかったことに気づいた.また、異なるタイプの音楽を発見し、イコライザの周波数帯域の設定が異なり、実現が面倒で、最後に放棄するしかなかった.新しいアイデアを探して、ついにドキュメントの中でソリューションAndroid 4.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