@skyway-sdk/core
Version:
The official Next Generation JavaScript SDK for SkyWay
37 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRemoteStream = void 0;
const common_1 = require("@skyway-sdk/common");
const errors_1 = require("../../../errors");
const util_1 = require("../../../util");
const audio_1 = require("./audio");
const data_1 = require("./data");
const video_1 = require("./video");
const log = new common_1.Logger('packages/core/src/media/stream/remote/factory.ts');
/**@internal */
const createRemoteStream = (id, media, codec) => {
if (media instanceof RTCDataChannel) {
const stream = new data_1.RemoteDataStream(id, media);
stream.codec = codec;
return stream;
}
else {
if (media.kind === 'audio') {
const stream = new audio_1.RemoteAudioStream(id, media);
stream.codec = codec;
return stream;
}
else if (media.kind === 'video') {
const stream = new video_1.RemoteVideoStream(id, media);
stream.codec = codec;
return stream;
}
}
throw (0, util_1.createError)({
operationName: 'createRemoteStream',
path: log.prefix,
info: Object.assign(Object.assign({}, errors_1.errors.invalidArgumentValue), { detail: 'invalid stream type' }),
});
};
exports.createRemoteStream = createRemoteStream;
//# sourceMappingURL=factory.js.map