无法在某些设备上在WebView中运行视频

时间:2013-05-13 11:48:48

标签: android video webview streaming device

这是我的第一个问题所以请温柔......

好的,这是问题所在。我必须在Android中的WebView中显示视频。 我已经在多个设备和Android版本上对其进行了测试,但它并不能保持一致。

  • Nexus 10(4.2.2) - 效果很好;
  • Nexus 4(4.2.2) - 效果很好;
  • Galaxy Tab 10.1(4.0.4) - 只有声音;
  • Nexus S(4.1.2) - 效果很好;
  • LG Optimus One(2.3.3) - 绝对没有;

我根本找不到问题,也没有在网上发现类似的问题......

这是我要显示的示例视频:

<html>
<div style="display:none">

</div>

<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>

<object id="myExperience2084424914001" class="BrightcoveExperience">
  <param name="bgcolor" value="#FFFFFF" />
  <param name="width" value="448" />
  <param name="height" value="282" />
  <param name="playerID" value="1628834100001" />
  <param name="playerKey" value="AQ~~,AAABCTwHZPk~,hTXeDm36Z7Rd3QTKipeWv6uC6OAmrw2j" />
  <param name="isVid" value="true" />
  <param name="isUI" value="true" />
  <param name="dynamicStreaming" value="true" />

  <param name="@videoPlayer" value="2084424914001" />
</object>

<script type="text/javascript">brightcove.createExperiences();</script>
</html>

以下是Android中的WebView示例...

try {
                        webviewC = (WebView) findViewById(R.id.webviewRSS);
                        webviewC.getSettings().setJavaScriptEnabled(true);
                        webviewC.getSettings().setDomStorageEnabled(true);
                        webviewC.getSettings().setSupportZoom(true);
                        webviewC.getSettings().setBuiltInZoomControls(true);
                        webviewC.getSettings().setUseWideViewPort(true);

                        // show loading progress in the title bar
                        webviewC.setWebChromeClient(new WebChromeClient() {
                            @Override
                            public void onProgressChanged(WebView view, int progress) {
                                activity.setProgress(progress);
                                // The progress meter will automatically disappear
                                // when
                                // we reach 100%
                                if (progress == 100) {
                                    setProgressBarVisibility(View.GONE);
                                }
                            }
                        });

                        // show message if error
                        webviewC.setWebViewClient(new WebViewClient() {
                            @Override
                            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                                Toast.makeText(activity, "Desole! " + description, Toast.LENGTH_SHORT).show();
                            }
                        });
                        webviewC.loadDataWithBaseURL("http://www.somebaseurl.org", aStringContainingHTML, "text/html", "UTF-8", "");
                    } catch (Exception e) {
                        Toast.makeText(activity, "Oh, no! " + e.getMessage(), Toast.LENGTH_SHORT).show();
                    }

UPDATE!

我得到的视频部分必须显示在WebView(客户端请求)中,我得到的是我刚刚从XML流量中发布的html部分,所以没有选项......

1 个答案:

答案 0 :(得分:3)

浏览器可能不支持HTML5标签以显示和播放视频。