UNPKG

infobip-rtc

Version:

Infobip RTC JavaScript SDK - Infobip WebRTC API Implementation

54 lines 2.16 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; export class DefaultAudioFilterManager { constructor(audioFilter) { this.audioFilter = audioFilter; } stop() { return __awaiter(this, void 0, void 0, function* () { if (!this.originalTrack) { return; } yield this.audioFilter.stop(); this.setActiveTrack(this.originalTrack); delete this.originalTrack; delete this.originalStream; }); } getAudioFilter() { return this.audioFilter; } start(stream, trackIndex) { return __awaiter(this, void 0, void 0, function* () { const track = stream.getTracks()[trackIndex]; if (!track) { return null; } if (this.originalTrack) { this.originalTrack.stop(); } this.originalTrack = track; this.originalStream = stream; this.filteredTrack = yield this.audioFilter.start(track); this.setActiveTrack(this.filteredTrack); return this.filteredTrack; }); } setActiveTrack(track) { if (track !== this.originalTrack) { this.originalStream.removeTrack(this.originalTrack); } else if (track !== this.filteredTrack) { this.originalStream.removeTrack(this.filteredTrack); } this.originalStream.addTrack(track); } } //# sourceMappingURL=DefaultAudioFilterManager.js.map