如何在抖动中暂停WebView?

问题描述 投票:1回答:1

我添加了一个用于查看网页的webview插件(官方flutter插件)。该网页之一播放了youtube视频,当我按下主屏幕按钮时,该应用进入后台。 但是问题是声音一直在播放。应用程序中的其他部分包含一些播放声音或视频的组件。

因此,我想知道在将应用程序移至后台后如何完全暂停Web视图。

我目前正在使用此Webview插件:webview_flutter: ^0.3.9+1插件中没有选项可以暂停Webview本身。

browser flutter webview dart
1个回答
0
投票

[在Android端使用webview_flutter: ^0.3.18+1遇到相同的问题。我找到了一种通过在主机onPauseActivity回调中再次请求音频焦点来暂停视频的解决方案。

val audioManager = activity.getSystemService(Context.AUDIO_SERVICE) as AudioManager

if (audioManager.isMusicActive) {
    if (Utils.hasOreoSDK26()) {
        val audioAttributes = AudioAttributes.Builder()
                .setUsage(AudioAttributes.USAGE_MEDIA)
                .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
                .build()
        val audioFocusRequest = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT)
                .setAudioAttributes(audioAttributes)
                .setAcceptsDelayedFocusGain(true)
                .setWillPauseWhenDucked(true)
                .setOnAudioFocusChangeListener(
                        { focusChange -> Timber.i(">>> Focus change to : %d", focusChange) },
                        Handler())
                .build()
        audioManager.requestAudioFocus(audioFocusRequest)
    } else {
        audioManager.requestAudioFocus({ }, AudioManager.STREAM_MUSIC,
                AudioManager.AUDIOFOCUS_GAIN_TRANSIENT)
    }
}

也检查this issue

© www.soinside.com 2019 - 2024. All rights reserved.