Изменение источника с помощью querySelector jquery не работает - PullRequest
0 голосов
/ 08 января 2019

Я использую плеер Plyr с простым списком воспроизведения. У меня есть j.code для смены источника видео, но он работает только с родным плеером, но не с Plyr. С Plyr консоль инициации отвечает TypeError: player.querySelector не является функцией. Весь кадр можно посмотреть здесь - https://special.novinky.cz/pocasi/index.html, код функции ниже

document.querySelectorAll('.video-link').forEach(link => {
      link.addEventListener('click', function() {
        const videoUrl = link.dataset.videoLinkUrl;
        player.source = videoUrl;
        player.querySelector('source').setAttribute('src', videoUrl);
        player.load();
        player.play();
        console.log('link.dataset.videoLinkUrl', link.dataset.videoLinkUrl);
      });
    });

игрок размещается с этим

<video poster="https://special.novinky.cz/pocasi/img/pocasi.jpg" id="player" playsinline controls>
  <source src="https://special.novinky.cz/pocasi/video/cizinsky.mp4" type="video/mp4">
</video>

и связано с этим

<script src="js/plyr.js"></script>
<script>const player = new Plyr('#player');</script>

1 Ответ

0 голосов
/ 08 января 2019

Итак, я нашел решение. Это странно, но работает.

document.querySelectorAll(".video-link").forEach(function(link) {
  link.addEventListener("click", function() {
    const videoUrl = link.dataset.videoLinkUrl;
    player.source = {
      type: "video",
      title: "video_title",
      sources: [
        {
          src: videoUrl,
          type: "video/mp4"
        }
      ]
    };
  });
});
...