我有一个闹钟类,可以按时播放默认的闹钟铃声。我想在一段时间内播放警报音,音量从最小到最大。我怎样才能从最小到最大逐渐增加音量。是否有示例代码或项目的链接。请帮我
问问题
3084 次
1 回答
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));
我希望这给了你想法。原谅任何错误或错别字。
于 2013-07-17T13:06:04.213 回答