Stuff
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import {HttpClient} from '@angular/common/http';
|
||||
|
||||
export class AudioService {
|
||||
protected context: AudioContext;
|
||||
protected track?: MediaElementAudioSourceNode;
|
||||
|
||||
constructor() {
|
||||
this.context = new AudioContext();
|
||||
}
|
||||
|
||||
createElement(filename: string) {
|
||||
const element = document.createElement('audio');
|
||||
const source = document.createElement('source');
|
||||
source.src = filename;
|
||||
source.type = 'audio/mp3';
|
||||
element.appendChild(source);
|
||||
return element;
|
||||
}
|
||||
|
||||
async play(): Promise<void> {
|
||||
if (this.context.state === 'suspended') {
|
||||
await this.context.resume();
|
||||
}
|
||||
const element = this.createElement('audio/1.mp3');
|
||||
this.track = this.context.createMediaElementSource(element);
|
||||
this.track.connect(this.context.destination);
|
||||
|
||||
await element.play();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user