Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以通过Android应用程序控制Android中默认媒体播放器的音量_Android - Fatal编程技术网

是否可以通过Android应用程序控制Android中默认媒体播放器的音量

是否可以通过Android应用程序控制Android中默认媒体播放器的音量,android,Android,我有以下要求 我正在开发一个Android移动应用程序。已为活动的特定持续时间设置计时器 当计时器持续时间还剩10秒(即变为零)时,我需要播放三次“嘟嘟”声;当计时器持续时间还剩5秒时,我需要播放两次“嘟嘟”声;当计时器完成时,我需要播放一次“嘟嘟”声 用户在使用Android移动应用程序时,可能正在使用Android手机的默认音乐播放器播放音乐。我需要实现逻辑,以便在从移动应用程序播放“嘟嘟”声时,我需要先降低默认音乐的音量,然后播放“嘟嘟”声,并在“嘟嘟”声播放所需次数后再次重置为原始音量

我有以下要求

我正在开发一个Android移动应用程序。已为活动的特定持续时间设置计时器

  • 当计时器持续时间还剩10秒(即变为零)时,我需要播放三次“嘟嘟”声;当计时器持续时间还剩5秒时,我需要播放两次“嘟嘟”声;当计时器完成时,我需要播放一次“嘟嘟”声

  • 用户在使用Android移动应用程序时,可能正在使用Android手机的默认音乐播放器播放音乐。我需要实现逻辑,以便在从移动应用程序播放“嘟嘟”声时,我需要先降低默认音乐的音量,然后播放“嘟嘟”声,并在“嘟嘟”声播放所需次数后再次重置为原始音量

  • 我想知道,这在技术上是否可行。

    是的,您可以使用更改音乐的音量。函数[setStreamVolume][2]就是您要查找的。您要查找的流类型是


    [2] :,int,int)

    实现这一点的一种方法是使用平台的功能,允许您的应用程序请求音频焦点,同时允许其他应用程序“闪避”。这允许您告诉系统。。“嘿,我要播放一些东西,告诉其他也播放音频的应用程序继续播放是可以的,但要降低音量。”

    以下是本节中的相关示例代码和注释

    请求瞬态音频聚焦时,您还有一个附加选项: 是否要启用“回避”。通常,当 表现良好的音频应用程序失去音频焦点,它会立即使其静音 播放。通过请求允许闪避的瞬态音频焦点 你告诉其他音频应用程序,他们可以保留 播放,前提是他们降低音量直到焦点恢复 他们

    我希望它能帮助别人

    AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE);
    // Request audio focus for playback
    int result = am.requestAudioFocus(afChangeListener,
                                 // Use the music stream.
                                 AudioManager.STREAM_NOTIFICATION,
                                 //tell them it's ok to duck
                                 AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
    
    if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
        // Start playback.
    }