Как изменить режим полноэкранного видео в WebBrowser? - PullRequest
1 голос
/ 11 апреля 2019

У меня есть проект c ++ с 2 WeBBrowser в TableLayoutPanel, они установлены рядом, все работает нормально, я нормально перемещаюсь, но когда я захожу на определенные веб-сайты и играю видео в полноэкранном режиме, который устанавливает весь монитор нав полноэкранном режиме вместо установки только самого WeBBrowser, но на других сайтах, которые идеально подходят для WeBBrowser.Есть ли способ изменить способ отображения в полноэкранном режиме?Я хочу, чтобы он отображался в полноэкранном режиме только в WeB​Browser.Я думаю, что это как-то связано с Web​Browser​Base.​Active​XInstance Property или Web​Browser.​Document Property.Большинство примеров, которые я нахожу в Интернете, относится к старому VB и не относится к свойству fullscreen.

Вот аналогичный вопрос: Элемент управления видео WebBrowser вводится в полноэкранном режиме

ВВ других примерах я видел метод для извлечения элемента, выполнив:

HtmlElement^  object = webBrowser1->Document->GetElementById("video");

Но я понятия не имею, как обработать этот код для того, чтобы отформатировать это видео, затем установить его обратно в WeBBrowser сисправлен полноэкранный режим.

РЕДАКТИРОВАТЬ:

Я пошел дальше, и я мог получить элемент <video> только с нескольких веб-сайтов, вот мой метод:

private: System::Void webBrowser1_DocumentCompleted(System::Object^  sender, System::Windows::Forms::WebBrowserDocumentCompletedEventArgs^  e) {
        HtmlElementCollection^  videoElements = webBrowser1->Document->GetElementsByTagName("video");
        videoElements[0]->SetAttribute("style", "width: 640px; height: 480px;"); //Not sure if this is a proper way to set an attribute in this element.
    }

Проблема в том, что не каждый веб-сайт предоставляет вам доступ к элементам тега <video>, поэтому для этих сайтов я сделал следующий код, чтобы убедиться, что в источнике действительно нет элементов тега <video>:

System::Diagnostics::Debug::Write(webBrowser1->DocumentText);

Тогда я не нашел ни одного элемента тега <video> в выводе, только несколько сайтов предоставляют мне это.Зачем?Как правильно получить и манипулировать <video> элементами тега в c ++?

1 Ответ

1 голос
/ 13 апреля 2019

Тогда я не нашел ни одного элемента тега в выводе, только несколько сайтов предоставляют мне это.Зачем?

Позвольте мне сделать обоснованное предположение.Для некоторых страниц, на которые вы ссылаетесь, DOM создается динамически и асинхронно.Это означает, что эти <video> теги могут просто еще не быть там.

Таким образом, вам может потребоваться наличие некоторой логики асинхронного опроса, которая отслеживает изменения DOM, в частности, ищет теги <video>.

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

...