【发布时间】:2013-12-14 13:39:46
【问题描述】:
我正在使用 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);
}
【问题讨论】: