Самый простой Shaka Player не работает

Все, что я хочу, это чтобы мой проигрыватель шака работал. Я перечислил все файлы в моем каталоге фильмов. Мой файл манифеста (.mpd) состоит из 5 различных файлов видеопотока webm, расположенных в одном каталоге (я понимаю, что аудио там нет, что не важно в этом сценарии).

Я в значительной степени следовал учебнику с сайта:

https://shaka-player-demo.appspot.com/docs/api/tutorial-welcome.html

Я не уверен, почему это не работает. Может кто-нибудь помочь?

Каталог фильмов:

Movie_WebM.html  
shaka-player.compiled.js  
Movie.js  
Movie_Manifest.mpd              
Movie_160x90_250k.webm                           
Movie_320x180_500k.webm  
Movie_640x360_1000k.webm  
Movie_640x360_750k.webm     
Movie_1280x720_500k.webm

Movie_WebM.html:

<!DOCTYPE html>
<html>
  <head>
    <script src="shaka-player.compiled.js"></script>
    <script src="Movie.js"></script>
  </head>
  <body>
    <video id="video"
           width="640"
           poster="//shaka-player-demo.appspot.com/assets/poster.jpg"
           controls></video>
  </body>
</html>

Movie.js:

var manifestUri = 'Movie_Manifest.mpd';

function initApp() {
  shaka.log.setLevel(shaka.log.Level.V1);
  // Install built-in polyfills to patch browser incompatibilities.
  shaka.polyfill.installAll();

  // Check to see if the browser supports the basic APIs Shaka needs.
  if (shaka.Player.isBrowserSupported()) {
    // Everything looks good!
    initPlayer();
  } else {
    // This browser does not have the minimum set of APIs we need.
    console.error('Browser not supported!');
  }
}

function initPlayer() {
  // Create a Player instance.
  var video = document.getElementById('video');
  var player = new shaka.Player(video);

  // Attach player to the window to make it easy to access in the JS console.
  window.player = player;

  // Listen for error events.
  player.addEventListener('error', onErrorEvent);

  // Try to load a manifest.
  // This is an asynchronous process.
  player.load(manifestUri).then(function() {
    // This runs if the asynchronous load is successful.
    console.log('The video has now been loaded!');
  }).catch(onError);  // onError is executed if the asynchronous load fails.
}

function onErrorEvent(event) {
  // Extract the shaka.util.Error object from the event.
  onError(event.detail);
}

function onError(error) {
  // Log the error.
  console.error('Error code', error.code, 'object', error);
}

document.addEventListener('DOMContentLoaded', initApp);

1 ответ

Попробуйте набежать на localhost. Вы можете использовать Python SimpleHTTPServer:

python -m SimpleHTTPServer

и открыть

localhost:8000/{MOVIE_DIR}/Movie_WebM.html

EME требует безопасный URL для использования. Это означает, что вы должны использовать https или быть на localhost. В настоящее время только Chrome применяет его, но в будущем появятся и другие браузеры. Кроме того, из-за смешанных требований к контенту, если ваш сайт использует https, тогда ваш манифест и каждый сегмент также должны будут использовать https. - https://shaka-player-demo.appspot.com/docs/api/tutorial-drm-config.html

Другие вопросы по тегам