infobip-rtc
Version:
Infobip RTC JavaScript SDK - Infobip WebRTC API Implementation
39 lines • 1.2 kB
JavaScript
export class DefaultAudioFilterManager {
constructor(audioFilter) {
this.audioFilter = audioFilter;
}
async stop() {
if (!this.originalTrack) {
return;
}
await this.audioFilter.stop();
this.setActiveTrack(this.originalTrack);
delete this.originalTrack;
delete this.originalStream;
delete this.filteredTrack;
}
getAudioFilter() {
return this.audioFilter;
}
async start(stream) {
const track = stream.getAudioTracks()[0];
if (!track) {
return;
}
this.originalTrack?.stop();
this.originalTrack = track;
this.originalStream = stream;
this.filteredTrack = await this.audioFilter.start(track);
this.setActiveTrack(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