我正在尝试使用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"
答案 0 :(得分:0)
如果您检测到支持的视频mimetype的网址返回true,则必须覆盖shouldOverrideUrlLoading()
,然后使用该网址启动默认活动。这是一个样本。
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;
}});
希望这会有所帮助。