Как воспроизвести видео YouTube на Windows приложения C # - PullRequest
0 голосов
/ 10 ноября 2011

Я создал приложение для Windows с элементом управления WebBrowser и пытался воспроизвести видео на YouTube. Я установил Adobe Shockwave Player и попытался просмотреть видео в своем приложении для Windows, но оно не показывает никаких видео. Когда я нажимаю кнопку воспроизведения, экран выглядит так enter image description here

Мой код для воспроизведения видео

StreamWriter sw = new StreamWriter("utube.html");
        string PlayString = currentVideoUrl.Trim().Replace("watch?v=", "v/");
        string Finalplaycode = "<embed src=" + PlayString + "&hl=en&fs=1& type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=425 height=344></embed>";
        sw.Write(Finalplaycode);
        sw.Close();
        string PathToNavigate = Directory.GetParent(Application.ExecutablePath) + @"\utube.html";
        webBrowser1.Navigate(PathToNavigate);

и мой пример видео ссылки: http://www.youtube.com/watch?v=oZdnezj9Dfg&feature=BFa&list=PLD3E900BFF6534896&lf=plpp_video

Может кто-нибудь помочь мне об этой проблеме? Я пропустил какой-нибудь плагин или что-то? Я использую .NetFramework 4.0

1 Ответ

2 голосов
/ 10 ноября 2011

Одна проблема, которую я вижу, это то, что вы не цитируете параметры в коде. Ваш код для вставки будет сгенерирован как:

<embed src=http://www.youtube.com/v/video_id...>

Вам нужно указать эти параметры:

<embed src="http://www.youtube.com/v/video_id...">

Например, вот код для вставки, который работает на моем сайте:

<embed type="application/x-shockwave-flash" width="425" height="344" 
src="http://www.youtube.com/v/UejelYnVI3U&amp;hl=en&amp;fs=1"></embed>

Возможно, вам будет интересно прочитать официальную документацию YouTube. Они отошли от использования встраивания в пользу фреймов. Это позволяет им использовать видеоплеер HTML5, если он доступен, или использовать Flash. Подробнее см. http://www.google.com/support/youtube/bin/answer.py?answer=171780.

Обновление:

HTML-файл ниже встраивает одно и то же видео двумя способами: один раз с использованием iframe и один раз с использованием стандартного встраивания. Он работает, когда я перехожу к нему с помощью элемента управления WebBrowser:

<html>
<body>
<iframe class="youtube-player" type="text/html" width="640" height="385"
 src="http://www.youtube.com/embed/oZdnezj9Dfg" frameborder="0">
</iframe>

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0">
<param name="src" value="http://www.youtube.com/v/oZdnezj9Dfg&amp;hl=en&amp;fs=1" />
<embed type="application/x-shockwave-flash" width="425" height="344" 
  src="http://www.youtube.com/v/oZdnezj9Dfg&amp;hl=en&amp;fs=1">
</embed>
</object>

</body>
<html>

Попробуйте скопировать это и перейти к нему в вашем приложении. Убедитесь, что ваша программа создает код для вставки именно так.

Кроме того, вы можете удалить внешний тег <object>, если у вас уже установлена ​​Flash. Затем Flash-код выглядит так же, как я показывал изначально.

И нет необходимости, чтобы у вас была HTML-оболочка. Это работает нормально, если я просто включаю вложение без <html> и других тегов.

...