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
在Windows 10通用应用程序上添加Youtube嵌入视频_Windows_Video_Youtube_Windows 10_Win Universal App - Fatal编程技术网

在Windows 10通用应用程序上添加Youtube嵌入视频

在Windows 10通用应用程序上添加Youtube嵌入视频,windows,video,youtube,windows-10,win-universal-app,Windows,Video,Youtube,Windows 10,Win Universal App,我正在尝试将YouTube视频嵌入到我的Windows10Universal应用程序中。我知道有违反YouTube条款的方法,但有没有不违反条款的方法 我已经尝试了以下代码,并且我能够启动YouTube播放器。但视频无法加载 欠初始化 string html = @"<style> body{margin:0; padding:0;} iframe{width:100%;height:480px;}@media screen and (max-width:300px) { ifram

我正在尝试将YouTube视频嵌入到我的Windows10Universal应用程序中。我知道有违反YouTube条款的方法,但有没有不违反条款的方法

我已经尝试了以下代码,并且我能够启动YouTube播放器。但视频无法加载

欠初始化

string html = @"<style> body{margin:0; padding:0;} iframe{width:100%;height:480px;}@media screen and (max-width:300px) { iframe{width:100%;height:180px;}}  </style><iframe style=""padding:0px;margin-bottom:-20px;""   src=""https://www.youtube.com/embed/OLE5oAZanA4" + @" ? rel=0"" frameborder=""0"" allowfullscreen></iframe>";
        videoView.NavigateToString(html);
string html=@“正文{边距:0;填充:0;}iframe{宽度:100%;高度:480px;}@media-screen和(最大宽度:300px){iframe{宽度:100%;高度:180px;}”;
videoView.NavigateToString(html);
用户界面代码

<WebView Name="videoView" HorizontalAlignment="Left" Height="297" Margin="466,150,0,0" Grid.Row="1" VerticalAlignment="Top" Width="441"/>

对于任何使用MyToolkit的人(这与YT术语背道而驰)。使用此方法时是否仍在跟踪视图

试试这个

StringBuilder stringbuild = new StringBuilder();
        stringbuild.Append("<!DOCTYPE html>");
        stringbuild.Append("<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">");
        stringbuild.Append("<head> <meta charset=\"utf-8\"/> <title></title> </head>");
        stringbuild.Append("<body>");
        stringbuild.Append(" <style>  iframe {border: none;}");
        stringbuild.Append(" html, body {margin: 0px; padding: 0px; border: 0px; width: 100%; height: 100%; overflow:hidden;} </style>");
        stringbuild.Append(" <div id=\"player\" style=\"width:200px; height:400px;\"></div>");
        stringbuild.Append("<script>");
        stringbuild.Append("var tag = document.createElement('script');");
        stringbuild.Append("tag.src = \"https://www.youtube.com/iframe_api\";");
        stringbuild.Append("var firstScriptTag = document.getElementsByTagName('script')[0];");
        stringbuild.Append(" firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);");
        stringbuild.Append(" function onYouTubeIframeAPIReady() {window.external.notify(\"YoutubePlayerLoadCompleted\");  }");
        stringbuild.Append(" var width; var height;");
        stringbuild.Append(" function setwidth(incoming) { width = incoming; document.getElementById(\"player\").style.width = incoming+ 'px';  }");
        stringbuild.Append("function setheight(incoming) { height = incoming; document.getElementById(\"player\").style.height = incoming +'px';    }");
        stringbuild.Append("var player;");
        stringbuild.Append(" function loadplayer(incomming) {  player = new YT.Player('player', {   height: height,  width: width,  playerVars: { 'fs': 1 }, videoId: incomming,   events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } });   var element = document.getElementById('videoframe'); }");
        stringbuild.Append("function onPlayerReady(event) { }");
        stringbuild.Append("function onPlayerStateChange(event) {}");
        stringbuild.Append("function play() { if (!player){} else { try { player.playVideo();} catch(err){window.external.notify(err.message);} }}");
        stringbuild.Append(" function pause() { player.pauseVideo(); }");
        stringbuild.Append("</script> </body> </html>");
        string ts = stringbuild.ToString();

        webview.NavigateToString(ts);

        webview.ScriptNotify += async delegate (object sender1, NotifyEventArgs e1)
        {
            var jsScriptValue = e1.Value;
            if (jsScriptValue.ToString().Equals("YoutubePlayerLoadCompleted"))
            {

                await webview.InvokeScriptAsync("setwidth", new string[] {"500" });
                await webview.InvokeScriptAsync("setheight", new string[] {"400" });
                await webview.InvokeScriptAsync("loadplayer", new string[] { "_P9lGTiiXW0" });

            }

        };
StringBuilder stringbuild=新建StringBuilder();
stringbuild.Append(“”);
stringbuild.Append(“”);
stringbuild.Append(“”);
stringbuild.Append(“”);
追加(“iframe{border:none;}”);
Append(“html,正文{margin:0px;padding:0px;border:0px;宽度:100%;高度:100%;溢出:隐藏;}”);
stringbuild.Append(“”);
stringbuild.Append(“”);
追加(“var tag=document.createElement('script');”;
stringbuild.Append(“tag.src=\”https://www.youtube.com/iframe_api\";");
stringbuild.Append(“var firstScriptTag=document.getElementsByTagName('script')[0];”);
追加(“firstScriptTag.parentNode.insertBefore(tag,firstScriptTag);”;
stringbuild.Append(“函数onyoutubeiframeapiredy(){window.external.notify(\'YoutubePlayerLoadCompleted\);}”);
追加(“变量宽度;变量高度;”);
stringbuild.Append(“函数setwidth(incoming){width=incoming;document.getElementById(\“player\”).style.width=incoming+'px';}”);
stringbuild.Append(“函数setheight(incoming){height=incoming;document.getElementById(\'player\”).style.height=incoming+'px';}”);
追加(“var player;”;
stringbuild.Append(“函数loadplayer(incomming){player=new YT.player('player',{height:height,width:width,playerBars:{'fs':1},videoId:incomming,事件:{'onReady':onPlayerReady,'onStateChange':onPlayerStateChange}”);var元素=document.getElementById('videoframe');});
追加(“函数onPlayerReady(事件){}”);
Append(“函数onPlayerStateChange(event){}”);
stringbuild.Append(“函数play(){if(!player){}else{try{player.playVideo();}catch(err){window.external.notify(err.message);}}}”);
追加(“函数pause(){player.pauseVideo();}”);
stringbuild.Append(“”);
字符串ts=stringbuild.ToString();
webview.NavigateToString(ts);
webview.ScriptNotify+=异步委托(对象发送者1,NotifyEventArgs e1)
{
var jsScriptValue=e1.Value;
if(jsScriptValue.ToString().Equals(“YoutubePlayerLoadCompleted”))
{
wait webview.InvokeScriptAsync(“setwidth”,新字符串[]{“500”});
wait webview.InvokeScriptAsync(“setheight”,新字符串[]{“400”});
wait webview.InvokeScriptAsync(“loadplayer”,新字符串[]{“\u P9lGTiiXW0”});
}
};