3

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

4

1 回答 1

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触发,就调用它:

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

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

于 2013-07-17T13:06:04.213 回答