Самый простой 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