我想在Android中显示我想要从html视频标签播放视频的WebView。 我写这样做的代码并自动播放视频,即无需按任何按钮视频就会自动启动。 但是,我希望只有在视频准备播放时才会显示WebView。 请查看我的代码并告诉我我必须编写哪些代码,以便在视频缓冲区完成后,WebView将变为可见并且视频会自动启动。 我在GUI上添加了一个按钮,当点击该按钮时,将调用此方法。
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>
以下是视频的html文件,名为&#34; videotag.html&#34;
<!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>
现在请帮助我,我该怎么做才能让WebView仅在视频准备好开始时可见,直到它保持不可见为止。