gpt4 book ai didi

android - Android-Jelly Bean-YouTube仅播放一次视频

转载 作者:行者123 更新时间:2023-12-03 05:41:36 29 4
gpt4 key购买 nike

我正在使用WebView以便在我的Android应用中播放YouTube视频。
它工作正常,但我似乎对Jelly Bean存有疑问(也许还不知道更高版本)。

第一次播放视频时,它可以正常播放,但是当我尝试再次播放它或什至另一个视频时,在关闭WebView并重新打开它后,我会看到视频正在加载,但随后进入暂停模式(可以可以在附上的图片中看到)。

关闭WebView时,我使用的是这段代码,我认为这是问题的原因:

Class.forName("android.webkit.WebView").getMethod("onPause", (Class[]) null).invoke(webview, (Object[]) null);

有人遇到这个问题吗?

左图-视频正常播放。

中间图片-尝试再次加载。

正确的图像-视频已暂停且从未开始。

这是我正在使用的代码:
private void loadUrl() 
{
progress.setVisibility(View.VISIBLE);
webview.setWebChromeClient(new WebChromeClient());

if (Build.VERSION.SDK_INT < 8) {
webview.getSettings().setPluginsEnabled(true);
} else {
webview.getSettings().setPluginState(PluginState.ON);
}

WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);


webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView wView, String url)
{
progress.setVisibility(View.VISIBLE);
webview.loadUrl(url);
isLoading = true;
return true;
}

@Override
public void onPageStarted (WebView view, String url, android.graphics.Bitmap favicon)
{
progress.setVisibility(View.VISIBLE);
}

@Override
public void onReceivedError (WebView view, int errorCode, String description, String failingUrl)
{
progress.setVisibility(View.GONE);
isLoading = false;
}

@Override
public void onPageFinished (WebView view, String url)
{
progress.setVisibility(View.GONE);
isLoading = false;
}
});

webview.loadUrl(url);
}

最佳答案

我通过清除/销毁webview解决了这个问题:

         if (webview != null)
{
if (isLoading)
{
webview.stopLoading();
}

webview.clearCache(true);
webview.clearView();
webview.freeMemory();
webview.destroy();
}

关于android - Android-Jelly Bean-YouTube仅播放一次视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20584004/

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