Javascript 在android中播放视频时显示Webview
我想在Android中显示WebView,我想在其上播放html视频标签中的视频。 我编写了执行此操作的代码,视频将自动播放,即不按任何按钮,视频将自动启动。 但是,我希望WebView仅在视频准备播放时显示。 请查看我的代码,并告诉我必须编写哪段代码,以便在视频缓冲区完成后,WebView将变为可见,视频将自动启动。 我在GUI上添加了一个按钮,单击该按钮将调用此方法Javascript 在android中播放视频时显示Webview,javascript,android,html,webview,android-webview,Javascript,Android,Html,Webview,Android Webview,我想在Android中显示WebView,我想在其上播放html视频标签中的视频。 我编写了执行此操作的代码,视频将自动播放,即不按任何按钮,视频将自动启动。 但是,我希望WebView仅在视频准备播放时显示。 请查看我的代码,并告诉我必须编写哪段代码,以便在视频缓冲区完成后,WebView将变为可见,视频将自动启动。 我在GUI上添加了一个按钮,单击该按钮将调用此方法 public void onShowInlineVideoButton(View view) { //webView.
public void onShowInlineVideoButton(View view) {
//webView.setVisibility(View.VISIBLE);
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
int SDK_INT = android.os.Build.VERSION.SDK_INT;
System.out.println("!!!!!!! SDK_INT is: " + SDK_INT);
if (SDK_INT > 16) {
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
}
webView.setWebViewClient(new WebViewClient() {
// autoplay when finished loading via javascript injection
@Override public void onPageFinished(WebView view, String url) {
System.out.println("!!!!!!!!!! In onPageFinished method...");
webView.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })");
webView.setVisibility(View.VISIBLE);
}
// @Override public void onLoadResource(WebView view, String url) { System.out.println("!!!!!!!onLoadResource" + webView.getProgress()); if(webView.getProgress() == 100 ) webView.setVisibility(View.VISIBLE);}
});
//webView.setWebChromeClient(new WebChromeClient());
// load the customURL with the URL of the page you want to display
String pageURL = "file:///android_asset/videotag.html";
webView.loadUrl(pageURL);
//webView.setVisibility(View.VISIBLE);
//webView.setPublicationId(publisherIdForNativeAds);
//webView.loadAd();
}
下面是活动的xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<Button
android:id="@+id/showInlineVideo"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:onClick="onShowInlineVideoButton"
android:text="@string/showInlineVideoButtonLabel"
android:textSize="14sp" />
<WebView
android:id="@+id/inlineVideo"
android:layout_width="300dp"
android:layout_height="250dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
这是一个名为“videotag.html”的视频html文件
现在,请帮助我,我应该做什么,使WebView只有在视频准备好开始时才可见,直到它将保持不可见
<!DOCTYPE html>
<html>
<body>
<a href="http://www.globe.com.ph/mylifestyleplan" target="_bla">
<video id="video" controls preload="metadata" autoplay buffered height="245" width="335" webkit-playsinline="webkit-playsinline" class="videoPlayer">
<source src="https://s3.amazonaws.com/silverpushcdn/debTest/videoplayback.mp4" type='video/mp4' />
</video>
</a>
</body>
</html>