Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android webview中播放视频URL_Android_Video_Webview - Fatal编程技术网

如何在android webview中播放视频URL

如何在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中播放视频url,但当我运行应用程序时,它只显示白色屏幕。 我读过一些关于这方面的文章,我使用了这些代码,但视频并没有在webview it launch device player中播放,但我的要求不是这样

如果有人已经这样做了,请帮助我。 我的代码在这里:-

    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);