Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как встроить и автоматически воспроизвести видео YouTube в компоненте WebBrowser1 в приложении Delphi

Delphi , Синтаксис , API реализация

Вопрос пользователя заключается в интеграции видео с YouTube в приложение на Delphi с использованием компонента WebBrowser1 и автоматического воспроизведения этого видео. Приведенный код на Delphi вызывает ошибку EOleException, 80020101 при попытке выполнения JavaScript, который использует устаревший API YouTube.

Решение проблемы

Для начала, необходимо использовать актуальный API YouTube – Iframe API, который является рекомендуемым для интеграции видео на веб-страницах. В примере ниже показан рабочий код для встраивания и автоматического воспроизведения видео YouTube в компонент WebBrowser1.

HTML код

<!DOCTYPE html>
<html>
<head>
<!-- // это необходимо для принудительного запуска встроенного браузера в режиме EDGE -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body>
  <!-- 1. Элемент &lt;iframe&gt; (и плеер видео) заменит этот &lt;div&gt; тег. -->
  <div id="player"></div>

  <script>
    // 2. Этот код загружает код IFrame Player API асинхронно.
    var tag = document.createElement('script');
    tag.src = "https://www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

    // 3. Эта функция создает &lt;iframe&gt; (и плеер YouTube)
    // после того, как код API загрузится.
    var player;
    function onYouTubeIframeAPIReady() {
      player = new YT.Player('player', {
        height: '390',
        width: '640',
        videoId: 'M7lc1UVf-VE', // Замените на ID нужного видео
        playerVars: { 'autoplay': 1, 'controls': 0 }, // Это необходимо для автоматического воспроизведения
        events: {
          'onReady': onPlayerReady,
          'onStateChange': onPlayerStateChange
        }
      });
    }

    // 4. API вызовет эту функцию, когда плеер видео будет готов.
    function onPlayerReady(event) {
      event.target.playVideo();
    }

    // 5. API вызовет эту функцию, когда состояние плеера изменится.
    var done = false;
    function onPlayerStateChange(event) {
      if (event.data == YT.PlayerState.PLAYING && !done) {
        setTimeout(stopVideo, 6000);
        done = true;
      }
    }
    function stopVideo() {
      player.stopVideo();
    }
  </script>
</body>
</html>

Delphi код

unit u_frm_main;

interface

uses
  MsHtml, SHDocVw;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate(ExtractFilePath(ParamStr(0)) + 'test.html');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Если необходимо, можно добавить здесь код для запуска JavaScript,
  // но при использовании правильного HTML кода, как показано выше,
  // дополнительный код на стороне Delphi не требуется.
end;

end.

Объяснение

При использовании корректного HTML кода, который включает в себя Iframe API YouTube, нет необходимости в выполнении дополнительного JavaScript кода с помощью Delphi. Как только страница загружена, API YouTube автоматически инициализирует плеер и воспроизведет видео, если переменная autoplay установлена в значение 1.

Важно отметить, что использование устаревшего JavaScript API YouTube приведет к ошибкам, поэтому необходимо обновить код в соответствии с актуальными рекомендациями Google.

Создано по материалам из источника по ссылке.

Вопрос пользователя связан с технической проблемой: необходимо встроить и автоматически воспроизвести видео с YouTube в приложение на Delphi с использованием компонента `WebBrowser1`, и для этого необходимо использовать актуальный Iframe API YouTube, так


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: API реализация ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 11:42:36/0.0051391124725342/1