Увеличение громкости медиаплеера во время воспроизведения - PullRequest
0 голосов
/ 15 декабря 2018

Я хочу сделать специальное приложение для будильника, и у пользователя должна быть возможность проснуться с громкой музыкой, например, на 60 секунд.Я не мог найти способ сделать это, поэтому мне нужна ваша помощь.

Спасибо за вашу помощь и извините за мой плохой английский

final AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    oldvolume=am.getStreamVolume(AudioManager.STREAM_MUSIC);
    am.setStreamVolume(AudioManager.STREAM_MUSIC,100,0);
    if (increase<=0)  mediaPlayer.setVolume(volume,volume);
    mediaPlayer.start();
    if (increase>0){
        mediaPlayer.setVolume(0,0);
        final double hohe=volume/increase;
        new CountDownTimer((increase*1000),1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                mediaPlayer.pause();
                mediaPlayer.setVolume((float) hohe*millisUntilFinished,(float) hohe*(increase*1000-millisUntilFinished));
                mediaPlayer.start();
            }
            @Override
            public void onFinish() {
                mediaPlayer.pause();
                mediaPlayer.setVolume( volume,volume);
                mediaPlayer.start();
            }
        }.start();

Это то, что я получил до сих пор.увеличение = увеличение времени в секундах громкость = максимальная громкость тревоги должна иметь

1 Ответ

0 голосов
/ 16 декабря 2018

Решение, у меня работает это:

   private Handler mHandler = new Handler();
private Runnable mVolumeRunnable = new Runnable() {
    @Override
    public void run() {
        if (mediaPlayer != null&&currentvolume<endvolume) {
            currentvolume += volumeincrease;
            mediaPlayer.setVolume(currentvolume/100f, currentvolume/100f);
            Toast.makeText(AlertActivity.this,String.valueOf(currentvolume),Toast.LENGTH_SHORT).show();
            mHandler.postDelayed(mVolumeRunnable, 1000);
        }
        else mHandler.removeCallbacks(mVolumeRunnable);
    }
};
...