1

WebBrowserコントロールのDocumentTextプロパティに次のgetting started HTML codeを割り当てようとしました。Windows.Forms.WebBrowserコントロール内で再生するYouTubeビデオを取得できません

<!DOCTYPE html> 
<html> 
    <body> 
    <!-- 1. The <iframe> (and video player) will replace this <div> tag. --> 
    <div id="player"></div> 

    <script> 
     // 2. This code loads the IFrame Player API code asynchronously. 
     var tag = document.createElement('script'); 

     tag.src = "https://www.youtube.com/iframe_api"; 
     var firstScriptTag = document.getElementsByTagName('script')[0]; 
     firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

     // 3. This function creates an <iframe> (and YouTube player) 
     // after the API code downloads. 
     var player; 
     function onYouTubeIframeAPIReady() { 
     player = new YT.Player('player', { 
      height: '390', 
      width: '640', 
      videoId: 'M7lc1UVf-VE', 
      events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
      } 
     }); 
     } 

     // 4. The API will call this function when the video player is ready. 
     function onPlayerReady(event) { 
     event.target.playVideo(); 
     } 

     // 5. The API calls this function when the player's state changes. 
     // The function indicates that when playing a video (state=1), 
     // the player should play for six seconds and then stop. 
     var done = false; 
     function onPlayerStateChange(event) { 
     if (event.data == YT.PlayerState.PLAYING && !done) { 
      setTimeout(stopVideo, 6000); 
      done = true; 
     } 
     } 
     function stopVideo() { 
     player.stopVideo(); 
     } 
    </script> 
    </body> 
</html> 

これは私に、実行時に、次のスクリプトエラーを与える:

JavaScript Error

それも、次の単純化されたコードは、同じエラーが発生していることが判明:

webBrowser1.DocumentText = "<!DOCTYPE html><html><body><script src='https://www.youtube.com/iframe_api'></script></body></html>"; 

だから、それが見えますWebBrowserのように、コントロールはiframe-APIを読み込めません。何が問題なの?または、このエラーをさらに調査するにはどうすればよいですか?

+0

あなたの問題を解決できますか?私はあなたと同じ問題を抱えています。 –

+0

いいえ「WebBrowser」コントロールで動作させることができませんでした。私は今、代わりにGeckoエンジンを使用しています(Geckofx45 Nugetパッケージ)。 –

答えて

1

WebBrowserのソリューションが見つかりました。まず、私たちのマシン上にある最新のIEを使ってWebブラウザを実行させ、thisのようにする必要があります。 第二に、私は、ローカルのHTMLをロードするときにWebブラウザーは、多くのセキュリティ上の制限があるためDocumentTextが動作しません設定http://localhost:xxxx/api/xxxx

にナビゲートするWebブラウザーを使用して、thisようにASP.NETのWeb APIとカタナを通じてHTMLをストリーミングすることがあります。

他の簡単な解決策は、GeckoやCefSharpのような他のブラウザエンジンを使用することです。

+0

YouTubeの埋め込みリンクへのこの答えの最初のステップとwebBrowser.Navigateだけがうまくいきました。 – Ammar

関連する問題