1

我正在创建一个在 C# (winform) 中播放 youtube 视频的应用程序。现在我想在视频结束时触发一个事件或类似的东西。我正在使用 webbrowser 控件并调用这样的 youtube 视频:

wbYoutube.Navigate("http://www.youtube.com/v/" + playString[1] + "?version=3&enablejsapi=1&autoplay=1");

playString[1] 是 youtube 视频 ID(如 rGJN5K2cV_8)。

几天来我一直试图让这个工作,有没有人知道如何实现这个目标?如果它甚至可能......

如果您需要更多信息,请告诉我。谢谢

4

1 回答 1

2

我认为这是可能的,但您必须自己将 html 代码写入浏览器元素

wbYoutube.DocumentText = "";

这是html(你必须逃避它)

    <html><head></head><body>

    <script type='text/javascript' src='http://www.youtube.com/player_api'></script>
    <iframe id="player" width="100%" height="100%" src="http://www.youtube.com/embed/VIDEO_ID?autoplay=1&controls=0&enablejsapi=1" frameborder="0" allowfullscreen></iframe>
    <script type="text/javascript">
    var player;
    function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
            videoId: 'VIDEO_ID',
            events: {
                'onStateChange': function(evt){
                    if(evt.data == 0){
                        window.external.Test('Video finished!!');
                    }
                }
            }
        });
    }
    </script>

</body></html>

并查看实现 DHTML 代码和客户端应用程序代码之间的双向通信

在那里你可以找到其余的代码。

于 2013-01-05T15:31:03.630 回答