视频未在Webview中显示

时间:2012-10-26 10:45:48

标签: android html5 android-webview html5-video

我有一个Html页面,在这个Html页面我正在显示一个视频,但是这个视频没有显示在我的应用程序的webview中,而是显示在默认浏览器中,所以请告诉我是什么问题,下面是我的代码和视频, html文件存储在SD卡中,对不起我的英语沟通不好。

MainActivity.java

public class MainActivity extends Activity {

    WebView webPage;
    Button next;
    String rootDir = "file://" + Environment.getExternalStorageDirectory()
            + "/iR-unzip/testbook/";
    WebChromeClient webChromeClient = new WebChromeClient();
    WebViewClient webViewClient = new WebViewClient();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webPage = (WebView) findViewById(R.id.webview);
        webPage.setWebChromeClient(webChromeClient);
        webPage.setWebViewClient(new MyWebViewClient());
        webPage.getSettings().setJavaScriptEnabled(true);
        webPage.getSettings().setPluginsEnabled(true);
        webPage.getSettings().setPluginState(PluginState.ON);
        webPage.getSettings().setLoadWithOverviewMode(true);
        webPage.getSettings().setUseWideViewPort(true);

        webPage.loadUrl(rootDir + "/" + "chapter_1.html");
        next = (Button) findViewById(R.id.page_changer);
        next.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                webPage.loadUrl(rootDir + "/" + "chapter_2.html");
            }
        });

    }

    public class MyWebChromeClient extends WebChromeClient {

        @Override
        public void onShowCustomView(View view, CustomViewCallback callback) {
            // TODO Auto-generated method stub
            super.onShowCustomView(view, callback);
            if (view instanceof FrameLayout) {
                FrameLayout frame = (FrameLayout) view;
                if (frame.getFocusedChild() instanceof VideoView) {
                    VideoView video = (VideoView) frame.getFocusedChild();
                    frame.removeView(video);
                    video.start();
                }
            }

        }
    }

    public class MyWebViewClient extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
}

Html页面: -

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

    <title>Chapter 1 for testBook</title>

</head>
<body>
<div style="width: 600px;margin: 0 auto;">
<div id="text"> 
<p><h4>WSDL for client access</h4>
A WSDL service description provides all the information that is required to use a web
service. The T320 version of Eclipse incorporates the Web Tools Platform (WTP),
which provides support for generating a client based on the information inside a
WSDL.
<h4>OU demo services</h4></h4>
<p>At the OU there is a small set of toy web services. These can be accessed using a
client in the same way as you tested the 'Hello' web service using Eclipse. In fact, one
of the web services hosted is a copy of the 'Hello' service.</p>
<img src="Caterpillar-Insect-Animal-Macro-HD-600x375.jpg" />

<p>Click on the 'Browse' button at the top of the box. This will take you to the dialogue box shown in Figure 11.</p>
<img src="images.jpg" />
</div>
<div>
<h3>HTML5 Video : </h3>
<video width="320" height="240" controls="controls">
  <source src="video.mp4" type="video/mp4">Your browser does not support the video tag.
</video>

</div>
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:2)

替换此行

  wb.getSettings().setPluginState(PluginState.ON);

这一个

  wb.getSettings().setPluginState(WebSettings.PluginState.ON);