当视频准备好在Android中播放时显示Webview

时间:2015-08-13 11:13:14

标签: javascript android html webview android-webview

我想在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仅在视频准备好开始时可见,直到它保持不可见为止。

0 个答案:

没有答案