如何在android webview中播放视频URL
我想在我的应用程序webview中播放视频url,但当我运行应用程序时,它只显示白色屏幕。 我读过一些关于这方面的文章,我使用了这些代码,但视频并没有在webview it launch device player中播放,但我的要求不是这样 如果有人已经这样做了,请帮助我。 我的代码在这里:-如何在android webview中播放视频URL,android,video,webview,Android,Video,Webview,我想在我的应用程序webview中播放视频url,但当我运行应用程序时,它只显示白色屏幕。 我读过一些关于这方面的文章,我使用了这些代码,但视频并没有在webview it launch device player中播放,但我的要求不是这样 如果有人已经这样做了,请帮助我。 我的代码在这里:- WebView webView = (WebView) findViewById(R.id.myweb); webView.getSettings().setJavaScriptEnabl
WebView webView = (WebView) findViewById(R.id.myweb);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(PluginState.ON);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setSupportMultipleWindows(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setAllowFileAccess(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
setProgressBarIndeterminateVisibility(false);
super.onPageFinished(view, url);
}
});
webView.loadUrl("http://download.wavetlan.com/SVV/Media/HTTP/H264/Talkinghead_Media/H264_test1_Talkinghead_mp4_480x360.mp4");
webView.setVisibility(View.VISIBLE);
正在浏览器中测试URL 添加
webview.setWebChromeClient(新的WebChromeClient())
和要为视频添加启用插件,请执行以下操作:
if (Build.VERSION.SDK_INT < 8) {
webview.getSettings().setPluginsEnabled(true);
}
else {
webview.getSettings().setPluginState(PluginState.ON);
}
if(Build.VERSION.SDK\u INT<8){
webview.getSettings().setPluginsEnabled(true);
}
否则{
webview.getSettings().setPluginState(PluginState.ON);
}
希望这有帮助。您需要加载一个HTML文档,将视频嵌入其中,而不是直接加载视频。要使用
标记在WebView中播放内嵌视频,您还必须确保在应用程序中启用了硬件加速功能(请参阅)。否在这种情况下,您不能通过链接播放视频。为此,您应该创建一个RTSP连接,然后可以通过Webview
中的RTSP url播放视频。您可以从像Youtube这样的服务器检索RTSP连接
WebView webview = (WebView) findViewById(R.id.webView1);
webview.setWebViewClient(new WebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webview.getSettings().setPluginState(WebSettings.PluginState.ON);
webview.getSettings().setMediaPlaybackRequiresUserGesture(false);
webview.setWebChromeClient(new WebChromeClient());
webview.loadUrl("https://www.youtube.com");
也设置在manifist文件中
我知道这是一个老问题,几天前我也遇到过同样的问题,在网上冲浪时我发现了这个完整的源代码,它对我帮助很大,现在我想与其他人分享,也许可以帮助像我这样的人 试试这个
{
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setMinimumFontSize(10);
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
settings.setBuiltInZoomControls(true);
settings.setDisplayZoomControls(false);
webView.setVerticalScrollBarEnabled(false);
webView.loadDataWithBaseURL(null, vUrl, "text/html", "UTF-8", null);
}
如果尝试了其他人但没有工作,也许您可以尝试以下方法:
if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.LOLLIPOP){
webview.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
我也被这个问题困住了。我从服务器得到了正确的响应,但无法播放视频。过了很长时间,我找到了解决办法。也许,在将来这个链接将是无效的。这是我的正确代码
Uri video = Uri.parse("Your link should be in this place ");
mVideoView.setVideoURI(video);
mVideoView.setZOrderOnTop(true); //Very important line, add it to Your code
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
// here write another part of code, which provides starting the video
}}
这可能是一个老问题,但这是可行的:
//Here Im loading the html file from disk
String html_file = LoadData(file.getAbsolutePath());
WebView myWebView = (WebView) view.findViewById(R.id.webView);
myWebView.reload();
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadData(html_file, "text/html; charset="utf-8", "UTF-8");
使用base64编码视频数据作为视频
源:
//html_file
<video controls>
<source type="video/mp4" src="data:video/webm;base64,MY_BASE64_ENCODED VIDEO_HERE">
</video>
//html\u文件
对我来说,这就是解决方案
settings.setDomStorageEnabled(true);
@siddharth不工作,只显示缩放按钮我使用的版本>4.0非常感谢你,我可以发送我的布局吗?哦,兄弟,它在我的设备中工作。顺便问一下,你添加了互联网权限吗??是的,我已经添加了,但是在我的设备中,只有白色屏幕。你可以检查其他url,如一些youtube url吗?这不是直接在webview中播放视频,而是打开浏览器,这不是问题的解决方案。它是播放来自url的视频,并在webview中打开。你能解释一下为什么这不是一个解决方案吗。如果您有更好的想法,请分享@Muhammad
pluginState
-已弃用,Kitkat或更高版本不支持插件请在答案中添加详细信息
settings.setDomStorageEnabled(true);