Clappr DASH
Tuesday, March 31, 2020 5:24 AMClappr - это расширяемая библиотека для создания видеоплееров. Он поддерживается многими браузерами и в основном всеми мобильными устройствами, в том числе в некоторых игровых консолях.
Поддерживаемые версии
Teleport.js совместим с версиями Clappr >= 0.2.70.
Для начала работы
До первой инициализации teleport.js необходимо привязать домен и получить API ключ apiKey
в личном кабинете клиента Teleport.
Инициализация
Загрузка javascript модулей при интеграции Clappr с teleport.js происходит в следующем порядке:
- Clappr.
- Бандл Teleport Core с DASH плагином для Clappr (все варианты подключения библиотеки Teleport).
Пример:
<script src="https://cdn.jsdelivr.net/npm/clappr@latest/dist/clappr.min.js"></script>
<script src="https://cdn.teleport.media/stable/teleport.clappr-dash.bundle.js"></script>
Для загрузки видеоплеером сегментов из пиринга необходимо:
- Инициализировать Телепорт, указав в качестве лоадера
clappr-dash
. - После инициализации скрипта Телепорта получить API лоадера, и далее плагин
TeleportClapprDashPlayback
. Он необходим для поддержки пиринга плеером Clappr. - Создать экземпляр Clappr, указав дополнительный плагин
TeleportClapprDashPlayback
.
Лоадер для плеера Clappr ожидает что объект Clappr будет доступен в глобальной области видимости. Т. е. если у вас SPA которое включает этот плеер, то необходимо присвоить переменной window.Clappr неймспейс плеера до загрузки скриптов Teleport. Например, так:
// Для CommonJS модулей
window.Clappr = require("clappr");
// Для ES6 модулей
import * as Clappr from "clappr";
window.Clappr = Clappr;
Полный пример
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TELEPORT CLAPPR DASH EXAMPLE</title>
</head>
<body>
<div id="video"></div>
<script src="https://cdn.jsdelivr.net/npm/clappr@latest/dist/clappr.min.js"></script>
<script src="https://cdn.teleport.media/stable/teleport.clappr-dash.bundle.js"></script>
<script>
var tlprt;
var STREAM_URL = "<URL видео-манифеста>";
var API_KEY = "<APIKEY полученных из кабинета>";
function initApp() {
teleport.initialize({
apiKey: API_KEY,
loader: { // параметры интеграции с плеером
type: "clappr-dash" // идентификатор плагина
}
})
.then(function (instance) {
tlprt = instance;
// Получаем плагин для Clappr из лоадера
var TeleportClapprDashPlayback = instance.getLoader().getPlugin();
// инициализируем плеер
var player = new Clappr.Player({
source: STREAM_URL,
autoPlay: true,
plugins: [
TeleportClapprDashPlayback
],
parentId: "#video"
});
})
.then(function () {
console.log("The video has now been loaded!");
// подписываемся за событие закрытия страницы, чтобы корректно освободить ресурсы
window.addEventListener("unload", function () {
if (tlprt) {
tlprt.dispose();
tlprt = null;
}
});
})
.catch(onError);
}
function onError(error) {
// Log the error.
console.error("Error code", error.code, "object", error);
}
document.addEventListener("DOMContentLoaded", initApp);
</script>
</body>
</html>