gpt4 book ai didi

android - 当应用程序在后台时,WebView 不会播放

转载 作者:行者123 更新时间:2023-11-29 01:20:12 25 4
gpt4 key购买 nike

我在整个网络上看到人们对 WebView 有疑问,当应用程序移至后台时它不会暂停音频。

我遇到了完全相反的问题。我希望音频在后台继续播放,但不会。我目前在 Youtube 上开始播放视频,如果我关闭屏幕(当应用程序处于前台时)它会继续播放,但当我按下主页按钮时,它会停止播放。

关于为什么它没有默认行为的任何想法?

以下是我设置 webview 的方式,以备不时之需

public void setupWebView(Context ctx, ISlideWebView wv, IWebViewToParentComm listener,
File cacheFolder) {
if (wv == null || !(wv instanceof WebView)) {
throw new IllegalArgumentException("Webview expected to be of type SlideWebView. Found class type [" + wv.getClass().getName() + "]");
}

SlideWebView webview = (SlideWebView) wv;

WebSettings webSettings = webview.getSettings();

webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

webSettings.setSaveFormData(false);
webSettings.setLoadWithOverviewMode(true);
webSettings.setSupportZoom(false);
webSettings.setUseWideViewPort(true);
webSettings.setBuiltInZoomControls(false);

webSettings.setAppCachePath(cacheFolder.getAbsolutePath());
webSettings.setAppCacheEnabled(true);
webSettings.setDatabaseEnabled(true);

webSettings.setSaveFormData(false);
webSettings.setSavePassword(false);
webSettings.setGeolocationEnabled(true);//TODO: ?! AppConfig.getInstance(context).usesGeolocation
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setDisplayZoomControls(false);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);

webview.setWebViewClient(new SlideWebViewClient(ctx, listener.getUrlNav(), listener.getUrlNavInterface()));
webview.setWebChromeClient(new SlideWebChromeClient(listener));
webview.setVerticalScrollListener(listener);
webview.setOverScrollMode(View.OVER_SCROLL_NEVER);
webview.setScrollbarFadingEnabled(false);

FileDownloader fileDownloader = listener.getFileDownloader();
if (fileDownloader != null) {
webview.setDownloadListener(fileDownloader);
}
}

最佳答案

是的,正如您所说,webview 问题在后台播放。即使我们有同样的问题,但 android api 级别特定。有特定的 api 调用 webview.pause()webview.resume()。这些调用将专门进行 javascript 处理。我们使用这些调用处理了问题(您需要使用反射来处理较低版本)。

因此,根据您的 javascript 在暂停和恢复时处理,您需要在 Activity onPause 回调调用 webview.onResume()

上再次进行更改

关于android - 当应用程序在后台时,WebView 不会播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37282093/

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