gpt4 book ai didi

android - 我如何确定 Google map 何时在 Android 中说话

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:00 25 4
gpt4 key购买 nike

我正在尝试修改我的应用程序以在 Google map 宣布转弯方向时暂停音频播放。

我已将以下代码(如下所示)添加到我的应用程序中。当 Pandora Radio 或 Spotify 等应用程序请求音频焦点以播放音乐时,音频焦点监听器会被调用,但当 Google map 宣布逐个转弯方向时,它不会被调用。为了检测这种行为,我应该听取其他 Intent 吗?

 AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.requestAudioFocus(new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN)
.setAudioAttributes(
new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build()
)
.setAcceptsDelayedFocusGain(true)
.setOnAudioFocusChangeListener(new AudioManager.OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
// This is called by Pandora Radio and Spotify
Log.d("Focus change:", " Event is: " + focusChange);
}
}).build());

最佳答案

您需要 AudioManagerAudioPlaybackCallback更新。

这仅适用于 Android O 及更高版本。

为此,您必须访问音频管理器 -

 AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

然后像这样添加监听器 -

Handler handler = new Handler();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
audioManager.registerAudioPlaybackCallback(new AudioManager.AudioPlaybackCallback() {
@Override
public void onPlaybackConfigChanged(List<AudioPlaybackConfiguration> configs) {
super.onPlaybackConfigChanged(configs);
// This will be called when navigation audio state on google maps changes
Log.d("audio active", String.valueOf(audioManager.isMusicActive()));
}
}, handler);
}

List<AudioPlaybackConfiguration> configs回调中返回的是 AudioAttribute包含描述音频播放的字符串的对象。对于 Google map 导航,字符串常量值为 USAGE_ASSISTANCE_NAVIGATION_GUIDANCE您可以比较它以确保它是宣布导航方向的 Google map 。

以编程方式你可以像这样得到它

// Loop through the configs to see the media's usage data
configs.get(0).getAudioAttributes().getUsage();

关于android - 我如何确定 Google map 何时在 Android 中说话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54579811/

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