即使媒体音量为0,Android也会播放声音
我想使用AudioTrack播放音乐,即使设备的媒体音量为0。 在我的应用程序中,我希望有一个用于媒体音量的SeekBar(可能是在后台运行其他音乐的情况下),另一个SeekBar用于我的应用程序的音乐 到目前为止,我可以更改媒体音量。但是我的应用程序的音乐也是无声的即使媒体音量为0,Android也会播放声音,android,media,volume,audiotrack,Android,Media,Volume,Audiotrack,我想使用AudioTrack播放音乐,即使设备的媒体音量为0。 在我的应用程序中,我希望有一个用于媒体音量的SeekBar(可能是在后台运行其他音乐的情况下),另一个SeekBar用于我的应用程序的音乐 到目前为止,我可以更改媒体音量。但是我的应用程序的音乐也是无声的 我该怎么做呢?我认为Android中有六种不同的声音流可以播放不同类型的声音 创建可预测音频体验的第一步是了解应用程序将使用的音频流 Android保留了一个单独的音频流用于播放 音乐, 警报, 通知, 来电铃声, 系统声音, 在
我该怎么做呢?我认为Android中有六种不同的声音流可以播放不同类型的声音 创建可预测音频体验的第一步是了解应用程序将使用的音频流 Android保留了一个单独的音频流用于播放 音乐, 警报, 通知, 来电铃声, 系统声音, 在通话量方面, 和DTMF音。 这样做主要是为了允许用户独立地控制每个流的容量 使用硬件音量键控制应用程序的音频音量 默认情况下,按音量控制按钮可修改活动音频流的音量。如果您的应用程序当前没有播放任何内容,则按音量键可调整振铃器的音量 如果你有一个游戏或音乐应用程序,那么当用户点击音量键时,他们很可能想要控制游戏或音乐的音量,即使他们目前正在播放歌曲,或者当前游戏位置没有音乐 您可能会尝试按音量键并以这种方式修改音频流的音量。忍住冲动。Android提供了方便的setVolumeControlStream()方法来将音量键指向指定的音频流 确定应用程序将使用的音频流后,应将其设置为音量流目标。您应该在应用程序生命周期的早期进行此调用,因为在“活动”生命周期中只需调用一次,通常应在(控制媒体的活动或片段的)onCreate()方法中调用它。这可以确保无论何时你的应用程序可见,音量控制功能都能满足用户的期望
setVolumeControlStream(AudioManager.STREAM_MUSIC);
从这一点开始,只要目标活动或片段可见,按设备上的音量键就会影响您指定的音频流(在本例中为“音乐”)。谢谢您的回答 现在我使用“AudioTrack(AudioManager.STREAM_SYSTEM,(…)”,它工作得很好。
也许这不是最好的方法,但到目前为止,它已经起作用了。我不知道你是否能分辨出这样的媒体卷。可以肯定的是,操作系统默认情况下没有特定于应用程序的音量控制。您可以尝试跟踪应用程序流或其他内容,但很难涵盖所有情况。在我看来,您似乎想忽略用户设置的音量首选项。我认为这不是一个好的用户体验决定。这是一个比我的评论好得多的答案。我所看到的唯一可能出现的问题是,如果一条你想要沉默的流与一条你想要出现的流或其他什么相吻合。例如,您的“音乐”流上不能运行两个不同的音频曲目吗?