gpt4 book ai didi

android - 放弃音频焦点不会恢复其他应用程序的音乐流式传输

转载 作者:行者123 更新时间:2023-12-02 22:37:59 24 4
gpt4 key购买 nike

我正在开发一个允许用户观看视频的应用程序。当他们打开要观看的视频时,我会调用:

AudioManager mAudioManager = (AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE);
mAudioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);

这会停止播放当时任何其他流媒体音乐的应用程序。我已经用 Play Music、Spotify、Soundcloud 等进行了测试,此时它们都停止了音乐播放。

当用户看完视频后,我调用
mAudioManager.abandonAudioFocus(this);

但是流式传输音乐且之前暂停的应用程序不会恢复流式传输音乐。我怎样才能让它工作?

我试过做 AUDIOFOCUS_GAINAUDIOFOCUS_GAIN_TRANSIENT .我在 Stack Overflow 上读到的所有内容都只是说我只需要发布音频管理器。这似乎很简单,但我无法弄清楚。我希望该功能类似于 Instagram 在您观看视频时暂停和恢复音乐的方式。

最佳答案

当您请求完整的“AUDIO_FOCUS”时,外部应用程序必须点击播放按钮才能请求“AUDIO_FOCUS”返回。仅仅因为您的应用程序获得了“AUDIO_FOCUS”然后放弃它,这不会恢复之前正在播放的音乐/视频。

克服这个问题的唯一方法是重新考虑应用程序的要求。因此,您可以请求临时音频焦点,即 AudioManager.AUDIOFOCUS_GAIN_TRANSIENT(或 AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_CAN_DUCK,具体取决于您是否认为其他音频可以在后台以较低音量继续播放)。

int requestAudioFocusResult = audioManager.requestAudioFocus(TimeWhisperService.this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
if(requestAudioFocusResult == AudioManager.AUDIOFOCUS_GAIN) {
//ACCESS GRANTED
}

关于android - 放弃音频焦点不会恢复其他应用程序的音乐流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42517627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com