diff --git a/src/Terminal.ts b/src/Terminal.ts index 4c6ba91639..879bfbab1c 100644 --- a/src/Terminal.ts +++ b/src/Terminal.ts @@ -473,7 +473,8 @@ export class Terminal extends EventEmitter implements ITerminal, IInputHandlingT this.viewport.syncScrollArea(); break; case 'tabStopWidth': this.setupStops(); break; - case 'bellStyle': this.preloadBellSound(); break; + case 'bellSound': + case 'bellStyle': this.syncBellSound(); break; } } @@ -683,7 +684,7 @@ export class Terminal extends EventEmitter implements ITerminal, IInputHandlingT this.viewportElement.appendChild(this.viewportScrollArea); // preload audio - this.preloadBellSound(); + this.syncBellSound(); // Create the selection container. this.selectionContainer = document.createElement('div'); @@ -2270,8 +2271,10 @@ export class Terminal extends EventEmitter implements ITerminal, IInputHandlingT this.options.bellStyle === 'both'; } - private preloadBellSound(): void { - if (this.soundBell()) { + private syncBellSound(): void { + if (this.soundBell() && this.bellAudioElement) { + this.bellAudioElement.setAttribute('src', this.options.bellSound); + } else if (this.soundBell()) { this.bellAudioElement = document.createElement('audio'); this.bellAudioElement.setAttribute('preload', 'auto'); this.bellAudioElement.setAttribute('src', this.options.bellSound);