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
我们如何使用webview在Android应用程序中播放YouTube嵌入的代码?_Android_Video_Youtube_Embed - Fatal编程技术网

我们如何使用webview在Android应用程序中播放YouTube嵌入的代码?

我们如何使用webview在Android应用程序中播放YouTube嵌入的代码?,android,video,youtube,embed,Android,Video,Youtube,Embed,我们如何使用webview在Android应用程序中播放YouTube嵌入的代码?查看以下文章: 请尝试以下代码,这些代码可能会对您有所帮助。我只是把它框起来供你参考 myWebView = (WebView) findViewById( R.id.webview_compontent ); String playVideo= "<html><body>Youtube video .. <br> <iframe class=\"youtube-pla

我们如何使用webview在Android应用程序中播放YouTube嵌入的代码?

查看以下文章:

请尝试以下代码,这些代码可能会对您有所帮助。我只是把它框起来供你参考

myWebView = (WebView) findViewById( R.id.webview_compontent );

String playVideo= "<html><body>Youtube video .. <br> <iframe class=\"youtube-player\" type=\"text/html\" width=\"640\" height=\"385\" src=\"http://www.youtube.com/embed/bIPcobKMB94\" frameborder=\"0\"></body></html>"

myWebView.loadData(playVideo, "text/html", "utf-8");
myWebView=(WebView)findviewbyd(R.id.WebView\u component);
String playVideo=“Youtube视频..
” 加载数据(播放视频,“文本/html”,“utf-8”);

有关如何使用Webview的信息,请参阅以下链接:

嗨,如果出现黑屏,请确保启用插件

WebView engine = (WebView) findViewById(R.id.webview);
engine.getSettings().setJavaScriptEnabled(true);
engine.getSettings().setPluginsEnabled(true);
engine.loadUrl("http://www.youtube.com/embed/bIPcobKMB94?autoplay=1");

在XML文件中添加WebView

<?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>

和在Java文件中

String frameVideo = "<html><body>Youtube video .. <br> <iframe width="320" height="315" src="https://www.youtube.com/embed/lY2H2ZP56K4" frameborder="0" allowfullscreen></iframe></body></html>";

WebView displayVideo = (WebView)findViewById(R.id.webView);

displayVideo.loadData(frameVideo, "text/html", "utf-8");
String frameVideo=“Youtube视频..
”; WebView displayVideo=(WebView)findviewbyd(R.id.WebView); 加载数据(frameVideo、“文本/html”、“utf-8”);
有关教程:

  • 公共类webview\u youtube扩展活动{
    字符串视频_id=“”;
    图像视图后视图;
    ProgressBar ProgressBar;
    html=“”;
    网络视图;
    @凌驾
    创建时受保护的void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(右布局、视频屏幕);
    setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u横向);
    video_id=“KK9bwTlAvgo”;
    初始化视图();
    }
    public void initializeViews(){
    试一试{
    webView=(webView)findviewbyd(R.id.webView);
    progressBar=(progressBar)findViewById(R.id.progressBar);
    if(视频id.equalsIgnoreCase(“”){
    完成();
    返回;
    }
    WebSettings ws=webView.getSettings();
    ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_列);
    ws.setPluginState(WebSettings.PluginState.ON);
    ws.setJavaScriptEnabled(true);
    webView.setScrollBarStyle(视图.滚动条\u内部\u覆盖);
    reload();
    html=getHTML(视频id);
    加载数据(html、“文本/html”、“UTF-8”);
    WebClientClass webViewClient=新的WebClientClass(progressBar);
    setWebViewClient(webViewClient);
    WebChromeClient WebChromeClient=新的WebChromeClient();
    webView.setWebChromeClient(webChromeClient);
    }捕获(例外e){
    e、 printStackTrace();
    }
    }
    @凌驾
    受保护的空onDestroy(){
    super.ondestory();
    试一试{
    loadData(“,”text/html“,”UTF-8“);
    }捕获(例外e){
    e、 printStackTrace();
    }
    }
    @凌驾
    public void onBackPressed(){
    super.onBackPressed();
    试一试{
    loadData(“,”text/html“,”UTF-8“);
    完成();
    }捕获(例外e){
    e、 printStackTrace();
    }
    }
    公共类WebClient类扩展WebViewClient{
    ProgressBar ProgressBar=null;
    网络客户端类(ProgressBar ProgressBar){
    ProgressBar=ProgressBar;
    }
    @凌驾
    public void onPageStarted(WebView视图、字符串url、位图favicon){
    super.onPageStarted(视图、url、favicon);
    ProgressBar.setVisibility(View.VISIBLE);
    }
    @凌驾
    公共void onPageFinished(WebView视图,字符串url){
    super.onPageFinished(视图、url);
    ProgressBar.setVisibility(View.GONE);
    }
    @凌驾
    公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
    Log.i(“webview点击:”,“+url.toString());
    //她的youtube url被加载以显示视频
    view.loadUrl(getHTML(video_id));
    返回true;
    }
    }
    公共字符串getHTML(字符串videoId){
    字符串html=“\n”+“\n”;
    Log.i(“来自html url的视频id=”,“”+html);
    返回html;
    }
    }
    
    thanx。我有与此链接相同的代码..thanx vinayak。我在Galaxy选项卡上看到了黑屏,但视频还没有播放。谢谢它的工作,但我仍然有一个全屏模式的问题。如何在android浏览器中启用java脚本?你能帮我吗?你可以使用webVIEW.getSettings().setJavaScriptEnabled(true);在loadData之前,希望不要太晚:)这将在2.2中的外部web浏览器中打开URL。@哦,Danny Boy实现您自己的WebViewClient并覆盖公共布尔值shouldOverrideUrlLoading(WebView视图,字符串URL){view.loadUrl(URL);return true;}这非常有效!请将http更改为https以使其正常工作
    public class webview_youtube extends Activity{
    
        String video_id = "";
        ImageView back_btn;
        ProgressBar progressBar;
        html = "";
        WebView webView;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.video_screen);
    
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    
    
    
                video_id = "KK9bwTlAvgo";
    
    
            initializeViews();
        }
    
        public void initializeViews() {
            try {
    
                webView = (WebView) findViewById(R.id.webView);
                progressBar = (ProgressBar) findViewById(R.id.progressBar);
    
                if (video_id.equalsIgnoreCase("")) {
                    finish();
                    return;
                }
    
                WebSettings ws = webView.getSettings();
                ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
                ws.setPluginState(WebSettings.PluginState.ON);
                ws.setJavaScriptEnabled(true);
                webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
                webView.reload();
    
    
                    html = getHTML(video_id);
    
                webView.loadData(html, "text/html", "UTF-8");
    
                WebClientClass webViewClient = new WebClientClass(progressBar);
                webView.setWebViewClient(webViewClient);
                WebChromeClient webChromeClient = new WebChromeClient();
                webView.setWebChromeClient(webChromeClient);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            try {
                webView.loadData("", "text/html", "UTF-8");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void onBackPressed() {
            super.onBackPressed();
            try {
                webView.loadData("", "text/html", "UTF-8");
                finish();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    
        public class WebClientClass extends WebViewClient {
            ProgressBar ProgressBar = null;
    
            WebClientClass(ProgressBar progressBar) {
                ProgressBar = progressBar;
            }
    
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                ProgressBar.setVisibility(View.VISIBLE);
            }
    
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                ProgressBar.setVisibility(View.GONE);
            }
    
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                Log.i("webview-click :", "" + url.toString());
    
                //her the youtube url gets loaded to show video
                view.loadUrl(getHTML(video_id));
                return true;
            }
        }
    
        public String getHTML(String videoId) {
            String html = "<iframe class=\"youtube-player\" " + "style=\"border: 0; width: 100%; height: 96%;"
                    + "padding:0px; margin:0px\" " + "id=\"ytplayer\" type=\"text/html\" "
                    + "src=\"http://www.youtube.com/embed/" + videoId
                    + "?&theme=dark&autohide=2&modestbranding=1&showinfo=0&autoplay=1\fs=0\" frameborder=\"0\" "
                    + "allowfullscreen autobuffer " + "controls onclick=\"this.play()\">\n" + "</iframe>\n";
            Log.i("video-id from html url= ", "" + html);
            return html;
        }
    
    }