oak-general-business/lib/utils/livestream.js

76 lines
3.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPlayBackUrl = exports.getStreamObj = exports.getLivestream = void 0;
var tslib_1 = require("tslib");
var getContextConfig_1 = require("./getContextConfig");
var assert_1 = require("oak-domain/lib/utils/assert");
/**
* 创建直播流并生成推拉流地址
* @param streamTitle 直播流名称
* @param expireAt 推流过期时间
* @param context context
* @returns Livestream 对象
*/
function getLivestream(params, context) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var streamTitle, expireAt, origin, _a, instance, config, _b, hub, liveHost, publishDomain, playDomain, playKey, publishKey;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0:
streamTitle = params.streamTitle, expireAt = params.expireAt, origin = params.origin;
return [4 /*yield*/, (0, getContextConfig_1.getConfig)(context, 'Live', origin)];
case 1:
_a = _c.sent(), instance = _a.instance, config = _a.config;
(0, assert_1.assert)(origin === 'qiniu');
_b = config, hub = _b.hub, liveHost = _b.liveHost, publishDomain = _b.publishDomain, playDomain = _b.playDomain, playKey = _b.playKey, publishKey = _b.publishKey;
return [2 /*return*/, instance.getLiveStream(hub, 'POST', streamTitle, liveHost, publishDomain, playDomain, publishKey, playKey, expireAt)];
}
});
});
}
exports.getLivestream = getLivestream;
// 获取推拉流地址
/**
* 直播流已存在的情况下,获取推拉流地址
* @param streamTitle 直播流名称
* @param expireAt 推流过期时间
* @param context context
* @returns livestream对象
*/
function getStreamObj(params, context) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var streamTitle, expireAt, origin, _a, instance, config, _b, publishDomain, publishKey, playDomain, playKey, hub;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0:
streamTitle = params.streamTitle, expireAt = params.expireAt, origin = params.origin;
return [4 /*yield*/, (0, getContextConfig_1.getConfig)(context, 'Live', origin)];
case 1:
_a = _c.sent(), instance = _a.instance, config = _a.config;
(0, assert_1.assert)(origin === 'qiniu');
_b = config, publishDomain = _b.publishDomain, publishKey = _b.publishKey, playDomain = _b.playDomain, playKey = _b.playKey, hub = _b.hub;
return [2 /*return*/, instance.getStreamObj(publishDomain, playDomain, hub, publishKey, playKey, streamTitle, expireAt)];
}
});
});
}
exports.getStreamObj = getStreamObj;
// 生成直播回放
function getPlayBackUrl(params, context) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var streamTitle, start, end, origin, _a, config, instance, _b, hub, playBackDomain, liveHost;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0:
streamTitle = params.streamTitle, start = params.start, end = params.end, origin = params.origin;
return [4 /*yield*/, (0, getContextConfig_1.getConfig)(context, 'Live', origin)];
case 1:
_a = _c.sent(), config = _a.config, instance = _a.instance;
_b = config, hub = _b.hub, playBackDomain = _b.playBackDomain, liveHost = _b.liveHost;
return [2 /*return*/, instance.getPlayBackUrl(hub, playBackDomain, streamTitle, start, end, 'POST', liveHost)];
}
});
});
}
exports.getPlayBackUrl = getPlayBackUrl;