From e46c71654767ecdf24f107ab80623e9847633d9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BENEDEK=20L=C3=A1szl=C3=B3?= Date: Tue, 10 Jun 2025 14:35:03 +0200 Subject: [PATCH] alert sounds --- public/audio/pop.mp3 | Bin 0 -> 5015 bytes .../channel-entry/channel-entry.component.ts | 8 +++++++- src/app/services/audio.service.ts | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 public/audio/pop.mp3 create mode 100644 src/app/services/audio.service.ts diff --git a/public/audio/pop.mp3 b/public/audio/pop.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..769f6f06a0cbc1e1db6106dfe8b68387fd22ec68 GIT binary patch literal 5015 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 literal 0 HcmV?d00001 diff --git a/src/app/chat/chat/channel-list/channel-entry/channel-entry.component.ts b/src/app/chat/chat/channel-list/channel-entry/channel-entry.component.ts index 434ad5e..374f607 100644 --- a/src/app/chat/chat/channel-list/channel-entry/channel-entry.component.ts +++ b/src/app/chat/chat/channel-list/channel-entry/channel-entry.component.ts @@ -1,5 +1,6 @@ import { Component, Input, OnChanges, SimpleChanges } from '@angular/core'; import { Channel } from '../../../../models/channel'; +import { AudioService } from '../../../../services/audio.service'; @Component({ selector: 'app-channel-entry', @@ -15,6 +16,8 @@ export class ChannelEntryComponent implements OnChanges { public notifications: number = 0; + constructor(private audioService: AudioService) { } + ngOnChanges(_: SimpleChanges): void { if (this.selected) { this.notifications = 0; @@ -22,6 +25,9 @@ export class ChannelEntryComponent implements OnChanges { } public Notify() { - if (!this.selected) this.notifications++; + if (!this.selected) { + this.notifications++; + this.audioService.PlayNotification(); + } } } diff --git a/src/app/services/audio.service.ts b/src/app/services/audio.service.ts new file mode 100644 index 0000000..31052ff --- /dev/null +++ b/src/app/services/audio.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class AudioService { + + constructor() { } + + public PlayNotification(): void { + let audio = new Audio(); + audio.src = 'audio/pop.mp3' + audio.load(); + audio.play(); + } +}