我有一个Alarm类,可以按时播放默认的闹钟铃声。我想在一段时间内发出警报音,音量从最小到最大。如何逐渐从最小到最大增加音量。是否有示例代码或项目的链接。请帮帮我
答案 0 :(得分:4)
你可以自己做。没有什么复杂的。
触发PendingIntent
后,请使用处理程序进行增加。
创建将应用的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.
}
}
}
触发Runnable
后,请致电PendingIntent
:
someHandler.post(new VolumeRunnable(mAudioManager,someHandler));
我希望这给了你一个想法。原谅任何错误或错别字。