Не удается воспроизвести видео YouTube в C# WebBrowser

Я разрабатываю легкое настольное приложение на С#.NET (Windows Forms) в 64-разрядной версии Windows 7, которое может искать и воспроизводить видео на YouTube.

Я провел всю ночь и день, пытаясь заставить приложение воспроизводить видео всеми возможными способами (я пробовал WebBrowser и Shockwave ActiveX Control), и мне не удалось воспроизвести какое-либо видео в приложении, за исключением случаев, когда я принудительно WebBrowser для перехода на полную страницу видео YouTube по URL-адресу https://www.youtube.com/watch?v={ВИДЕО_ID}.

На самом деле я хочу иметь возможность встраивать в веб-браузер только сам проигрыватель, а не всю видео-страницу YT. Вот что я пробовал до сих пор:

Работает, но мне это не нужно:

WebBrowser.Navigate("https://www.youtube.com/watch?v=" + video.Id);

Не работает:

WebBrowser.Navigate("https://www.youtube.com/embed/" + video.Id);

Browser.Navigate("about:blank");
Browser.Document.OpenNew(true);

Browser.DocumentText =
    "<html><body>" +
        "<iframe width='420' height='315' src='https://www.youtube.com/embed/" + video.Id + "&html5=1' frameborder='0' allowfullscreen></iframe>" +
    "</body></html>";

Browser.DocumentText = 
    "<object width='640' height='390'>" +
        "<param name='movie' value='https://www.youtube.com/v/" + video.Id + "?version=3&autoplay=1'></param>" +
        "<param name='allowScriptAccess' value='always'></param>" +
        "<embed src='https://www.youtube.com/v/" + video.Id + "?version=3&autoplay=1' " +
            "type='application/x-shockwave-flash' allowscriptaccess='always' width='640' height='390'></embed>" +
    "</object>";

AxShockwaveCtl.GotoMovie("https://www.youtube.com/v/" + video.Id);
AxShockwaveCtl.Play();

AxVideo.SRC = "https://www.youtube.com/v/" + video.Id;
AxVideo.swURL = "https://www.youtube.com/v/" + video.Id;
AxVideo.Play();

Я полагаю, что пробовал и другие вещи, такие как WebBrowser.Document.Write, но ничего не работает. Я видел здесь другие вопросы об этой проблеме, но все они, похоже, в конце концов каким-то образом решают свою проблему, и я пытался сделать то же, что и они, но в моем случае ничего не работает. Также попытался изменить все настройки Internet Explorer. Все работает, когда я использую «полный» браузер, такой как IE 11 или Chrome, но мое приложение просто отображает черный прямоугольник там, где должно быть видео YouTube.


person Fernando Aires Castello    schedule 03.01.2016    source источник
comment
Посмотрите, поможет ли это.   -  person noseratio    schedule 04.01.2016


Ответы (1)


Проблема связана с последним обновлением Windows. Не могу сказать, в чем проблема, но проблема во флеш-компоненте.

Поэтому, если вы принудительно запускаете видео на YouTube в режиме html5, оно должно работать. Попробуйте подписаться

WebBrowser.Navigate("https://www.youtube.com/embed/" + video.Id + "?html5=1");

person Anders Andersen    schedule 05.01.2016
comment
Это все еще дает мне черный прямоугольник. - person Fernando Aires Castello; 07.01.2016
comment
все еще не решение? - person gumuruh; 06.05.2020