playable
Version:
Video player based on HTML5Video
43 lines • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveAdapters = void 0;
var constants_1 = require("../../../constants");
function resolveAdapters(mediaStreams, availableAdapters) {
var playableAdapters = [];
var groupedStreams = groupStreamsByMediaType(mediaStreams);
var groupedStreamKeys = Object.keys(groupedStreams);
availableAdapters.forEach(function (adapter) {
for (var i = 0; i < groupedStreamKeys.length; i += 1) {
var mediaType = groupedStreamKeys[i];
if (adapter.canPlay(mediaType)) {
adapter.setMediaStreams(groupedStreams[mediaType]);
playableAdapters.push(adapter);
break;
}
}
});
playableAdapters.sort(function (firstAdapter, secondAdapter) {
return secondAdapter.mediaStreamDeliveryPriority -
firstAdapter.mediaStreamDeliveryPriority;
});
return playableAdapters;
}
exports.resolveAdapters = resolveAdapters;
function groupStreamsByMediaType(mediaStreams) {
var typeMap = {};
mediaStreams.forEach(function (mediaStream) {
var type = mediaStream.type || constants_1.MimeToStreamTypeMap[mediaStream.mimeType];
if (!type) {
return;
}
if (!Array.isArray(typeMap[type])) {
typeMap[type] = [];
}
typeMap[type].push({
url: mediaStream.url,
type: type,
});
});
return typeMap;
}
//# sourceMappingURL=adapters-resolver.js.map