安卓闹钟音量逐渐增大

标签 android media volume android-alarms android-audiomanager

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

最佳答案

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

一旦您的 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. 一旦 PendingIntent 被触发,调用这个 Runnable:

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

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

关于安卓闹钟音量逐渐增大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17697747/

相关文章:

java - 我只想开始开发并花更少的时间处理依赖关系......是否有非 MVN 解决方案?

css - 响应式电子邮件中的媒体查询不起作用

iPhone播放和录音音量小问题

java - Android getCacheDir() 中的文件何时被删除?长期存储的更好选择是什么?

android - 方法调用 'setDisplayHomeAsUpEnabled' 可能会产生 'java.lang.NullPointerException

Android Studio 在构建期间每次都会下载 maven 元数据

python - 检测窗口的默认媒体播放器

javascript变量和媒体屏幕

javascript - 如何通过 JavaScript 控制浏览器的音量?