我添加了一个用于查看网页的webview插件(官方flutter插件)。该网页之一播放了youtube视频,当我按下主屏幕按钮时,该应用进入后台。 但是问题是声音一直在播放。应用程序中的其他部分包含一些播放声音或视频的组件。
因此,我想知道在将应用程序移至后台后如何完全暂停Web视图。
我目前正在使用此Webview插件:webview_flutter: ^0.3.9+1
插件中没有选项可以暂停Webview本身。
[在Android端使用webview_flutter: ^0.3.18+1
遇到相同的问题。我找到了一种通过在主机onPause
的Activity
回调中再次请求音频焦点来暂停视频的解决方案。
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。