Android警报音量逐渐增加

时间:2013-07-17 10:47:32

标签: android media volume android-alarms android-audiomanager

我有一个Alarm类,可以按时播放默认的闹钟铃声。我想在一段时间内发出警报音,音量从最小到最大。如何逐渐从最小到最大增加音量。是否有示例代码或项目的链接。请帮帮我

1 个答案:

答案 0 :(得分:4)

你可以自己做。没有什么复杂的。

触发PendingIntent后,请使用处理程序进行增加。

  1. 创建将应用的AudioManagerContext作为参数的类。

      public class VolumeRunnable implements Runnable{
    
    private AudioManager mAudioManager;
    private Handler mHandlerThatWillIncreaseVolume;
    private final static int DELAY_UNTILL_NEXT_INCREASE = 30*1000;//30 seconds between each increment
    VolumeRunnable(AudioManager audioManager, Handler handler){
       this.mAudioManager = audioManager;
       this.mHandlerThatWillIncreaseVolume = handler;
    }
    
    @Override
    public void run(){
       int currentAlarmVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_ALARM);
       if(currentAlarmVolume != mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM)){ //if we havent reached the max
    
       //here increase the volume of the alarm stream by adding currentAlarmVolume+someNewFactor
            mHandlerThatWillIncreaseVolume.postDelayed(this,DELAY_UNTILL_NEXT_INCREASE); //"recursively call this runnable again with some delay between each increment of the volume, untill the condition above is satisfied. 
       }
    
    }
    

    }

  2. 触发Runnable后,请致电PendingIntent

  3.   

    someHandler.post(new VolumeRunnable(mAudioManager,someHandler));

    我希望这给了你一个想法。原谅任何错误或错别字。