WinForms - встраивание CNN URL живого видео - PullRequest
1 голос
/ 02 июля 2011

У меня есть приложение C # WinForms, и клиент запросил встроенный в него потоковый видеопроигрыватель CNN.CNN использует флэш-плеер, расположенный по адресу http://www.cnn.com/video/live/live.html?stream=stream1

. Однако, если я встраиваю объект WebBrowser и указываю на него URL, веб-сайт хочет запустить всплывающее окно вне моего элемента управления WebBrowser.Если я отключаю его (используя обработчики событий NewWindow), он выдает предупреждающее сообщение JavaScript.Если я разрешаю это, он открывает новый экземпляр IE вне моего приложения с видео CNN в нем.

Единственная мысль, которую я имел, состояла в том, чтобы воссоздать HTML и переопределить настройки javascript для их объекта flash (http://z.cdn.turner.com/cnn/.element/apps/CNNLive/2.1.6.2/assets/scripts/liveplayersettings.js)чтобы отключить всплывающие флаги.

У кого-нибудь есть мысли о том, как сделать так, чтобы сайт отображался в приложении?

Ответы [ 3 ]

1 голос
/ 26 июля 2011

Закончилось взломом Javascript, который использует CNN, не знаю, как долго это продлится, но это был самый быстрый способ выполнить то, что я хотел, без дополнительных накладных расходов других решений.

    protected void webBrowser_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
    {
        if (webBrowser.ReadyState == WebBrowserReadyState.Complete && DefaultPage == BrowserPage.CNN)
        {
            HtmlElement head = webBrowser.Document.GetElementsByTagName("head")[0];
            HtmlElement scriptElement = webBrowser.Document.CreateElement("script");
            IHTMLScriptElement element = (IHTMLScriptElement)scriptElement.DomElement;
            string popupBlocker = "if(typeof settings != 'undefined') { settings.FORCE_POPUP = false; }";
            element.text = popupBlocker;
            head.AppendChild(scriptElement);
        }
    }
0 голосов
/ 02 июля 2011

Я бы предложил скачать и использовать Microsoft Expression Encoder SDK. Он может захватывать прямые трансляции с других сайтов: http://msdn.microsoft.com/en-us/library/gg602440(v=expression.40).aspx

Вы можете прокрутить вниз до раздела «Работа с проектами прямого вещания», где объясняется, как захватывать прямые видеопотоки из Интернета.

Если Expression SDK не будет работать для вас, тогда я могу только предложить, чтобы вам пришлось перепроектировать их Javascript и написать какое-то приложение типа HttpWebRequest и HttpWebResponse, чтобы получать данные и передавать их в вашу программу самостоятельно.

0 голосов
/ 02 июля 2011

Windows Media Player будет воспроизводить флэш-файл, если у вас установлена ​​последняя версия ffdshow.Вы можете передать его URL-адрес и позволить проигрывателю встроенного мультимедийного проигрывателя Windows воспроизводить его.

VLC также сделает это, в зависимости от того, что вы предпочитаете.API для Windows Media Player, вероятно, немного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...