All checks were successful
CI / Get Changed Files (pull_request) Successful in 27s
CI / Checkstyle Main (pull_request) Has been skipped
CI / Docker backend validation (pull_request) Has been skipped
CI / oxlint (pull_request) Successful in 21s
CI / prettier (pull_request) Successful in 24s
CI / eslint (pull_request) Successful in 29s
CI / Docker frontend validation (pull_request) Successful in 58s
CI / test-build (pull_request) Successful in 25s
30 lines
818 B
TypeScript
30 lines
818 B
TypeScript
import { Injectable } from '@angular/core';
|
|
|
|
@Injectable({
|
|
providedIn: 'root',
|
|
})
|
|
export class AudioService {
|
|
private audioCache = new Map<string, HTMLAudioElement>();
|
|
|
|
private getAudio(soundName: string): HTMLAudioElement {
|
|
if (this.audioCache.has(soundName)) {
|
|
return this.audioCache.get(soundName)!;
|
|
}
|
|
|
|
const audio = new Audio(`/sounds/${soundName}`);
|
|
this.audioCache.set(soundName, audio);
|
|
return audio;
|
|
}
|
|
|
|
playBetSound(): void {
|
|
const audio = this.getAudio('bet.mp3');
|
|
audio.currentTime = 0;
|
|
audio.play().catch((error) => console.error('Error playing bet sound:', error));
|
|
}
|
|
|
|
playWinSound(): void {
|
|
const audio = this.getAudio('win.mp3');
|
|
audio.currentTime = 0;
|
|
audio.play().catch((error) => console.error('Error playing win sound:', error));
|
|
}
|
|
}
|