how to get the sound fade in functionality in alarm application using media player in android

前端 未结 2 819
旧巷少年郎
旧巷少年郎 2021-01-26 10:41

Hi i am new to android. I am developing a application with alarm functionality. Here i need to provide the sound fade in functionality. I am using media player to invoke the rin

相关标签:
2条回答
  • 2021-01-26 10:53

    you can use this method:

    setVolume(float leftVolume, float rightVolume);
    

    to create "fade in" effect you'll just start at zero and keep setting it a little bit higher at regular intervals. Some thing like this will increast the volume by 5% every half of a second

                final Handler h = new Handler();
                float leftVol = 0f;
                float rightVol = 0f;
                Runnable increaseVol = new Runnable(){
                    public void run(){
                        mp.setVolume(leftVol, rightVol);
                        if(leftVol < 1.0f){
                            leftVol += .05f;
                            rightVol += .05f;
                            h.postDelayed(increaseVol, 500);
                        }
                    }
                };
    
    
                h.post(increaseVol);
    

    you can control how much it gets raised each tick by changing what you add to leftVol and rightVol inside the if statement. And you can change how long each tick takes by changing the 500 parameter in the postDelayed() method.

    0 讨论(0)
  • 2021-01-26 11:09

    I revised @FoamyGuy's answer to avoid compiler and runtime errors and for brevity and clarity:

    // (At this point mp has been created and initialized)
    public float mpVol = 0f;
    mp.setVolume(mpVol, mpVol);
    mp.start();
    
    final Handler h = new Handler();
    h.post(new Runnable() {
        public void run() {
            if (mp.isPlaying()) {
                if (mpVol < 1.0f) {
                    mpVol += .05f;
                    mp.setVolume(mpVol, mpVol);
                    h.postDelayed(this, 500);
                }
            }
        }
    });
    
    0 讨论(0)
提交回复
热议问题