【问题标题】:How to play Flash Videos in a webview?如何在 web 视图中播放 Flash 视频?
【发布时间】:2017-12-11 08:21:10
【问题描述】:

我正在尝试使用 android webview 加载视频流,但视频无法播放返回错误不受支持的类型。我的代码如下

    starTvStream = ((MainActivity)mActivity).SESSION_STARTV_OTHER;
    mWebView  = (WebView) fragView.findViewById(R.id.streamWebView);
    WebSettings webSettings = mWebView.getSettings();
    mWebView.setWebViewClient(new WebViewClient());
    mWebView.setWebChromeClient(new WebChromeClient());
    mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
    mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    mWebView.loadUrl(starTvStream);

我的代码中可能缺少什么。在清单中我启用了android:hardwareAccelerated="true" 和权限

android:name="android.permission.INTERNET" 
android:name="android.permission.WAKE_LOCK"

【问题讨论】:

标签: android android-webview


【解决方案1】:

如果您检测到具有受支持的视频 mimetype 的 URL,则必须覆盖 shouldOverrideUrlLoading() 返回 true,然后使用该 URL 启动默认活动。这是一个示例。

mWebView.setWebViewClient(new WebViewClient(){

public boolean shouldOverrideUrlLoading(Webview view, String url){
     if(url.endsWith(".mp4") || url.endsWith("some other supported type")){
          Intent i = new Intent(Intent.ACTION_VIEW);
          i.setData(Uri.parse(url));
          startActivity(i); 
          //warning no error handling will cause force close if no media player on phone.
          return true;
     }
     else return false; 
}});

希望这会有所帮助。

【讨论】:

  • 然而,这将无法播放不受支持的类型。我认为有一种方法可以为不支持的类型添加插件,例如 swf 类型..
  • 您可以检查如下: if (Build.VERSION.SDK_INT
猜你喜欢
  • 1970-01-01
  • 2011-05-31
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
相关资源
最近更新 更多