2013-07-17 101 views
3

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

回答

4

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

一旦你的PendingIntent被触发,请利用处理程序来增加。

  1. 创建类,将采取AudioManager或应用作为参数的Context

    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(新VolumeRunnable(mAudioManager,someHandler));

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

+0

您错过了: Handler someHandler = new Handler(); 之前: someHandler.post(新VolumeRunnable(mAudioManager,someHandler)); 只是为他人评论。 – jclova