1

我正在开发一个 android 应用程序,我必须在其中播放 vimeo 视频。视频以 URL 的形式给出。我想将它加载到webview. 我试过了,但视频无法播放。我得到了视频的静止图像,但它没有播放,

videoPlayer = (WebView) findViewById(R.id.videoPlayer);   

    WebSettings webViewSettings = videoPlayer.getSettings();
    webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    webViewSettings.setJavaScriptEnabled(true);
    webViewSettings.setPluginsEnabled(true);
    webViewSettings.setBuiltInZoomControls(true);
    webViewSettings.setPluginState(PluginState.ON); 
    videoPlayer.loadData("<iframe src=\</**HERE COMES VIDEO LINK*/>width=\"1280\" 
                           height=\"720\" frameborder=\"0\" 
                           webkitAllowFullScreen mozallowfullscreen 
                           allowFullScreen></iframe>", "text/html", "utf-8");

谁能告诉我哪里出错了?或 Vimeo 视频无法在 Android 上播放。是否有任何 vimeo 播放器插件或类似 Android 的 Flash 播放器之类的东西,或者任何人都可以建议我解决这个问题的任何其他解决方案吗?

4

2 回答 2

1

尝试为 youtube 普通视频链接做这样的事情。它对我有用:

        String videoPoP = "http://www.youtube.com/v/A6kCkkLo6Rw?";
        webview.getSettings().setJavaScriptEnabled(true);
        String widthAndHeight = "width=\"" + widthdp + "\" height=\"" + heightdp + "\"";            

        String temp = "<object "
                + widthAndHeight
                + ">"
                + "<body style='margin:0;padding:0;'>"
                + "<param name='allowFullScreen' value='false'>"
                + "</param><param name='allowscriptaccess' value='always'>"
                + "</param><embed src='"
                + videoPoP
                + "'"
                + " type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true'"
                + widthAndHeight + "></embed></object>";

        webview.loadData(temp, "text/html", "utf-8");

以下代码也适用于 vimeo 视频。所以试试看

于 2012-08-24T07:14:29.260 回答
0

我遇到了同样的问题。如文档中所述:

为了在您的应用程序中支持内联 HTML5 视频,您需要打开硬件加速,并设置 WebChromeClient。

更多信息在这里:http: //developer.android.com/reference/android/webkit/WebView.html

但是,它不适用于所有设备,尤其是那些使用 Froyo 的设备。我仍在尝试寻找解决方法(至少对于 Dailymotion 和 Vimeo 视频)

于 2012-08-29T17:53:10.550 回答