Remotely/Remotely_Server/wwwroot/scripts/Sound.ts
2019-05-17 08:51:03 -07:00

37 lines
1.4 KiB
TypeScript

import { RemoveFromArray } from "./Utilities.js";
export const Sound = new class {
constructor() {
this.Context = new AudioContext();
this.BackgroundAudio = new Audio();
this.BackgroundNode = this.Context.createMediaElementSource(this.BackgroundAudio);
this.BackgroundNode.connect(this.Context.destination);
}
Context: AudioContext;
AudioElements: Array<HTMLAudioElement> = new Array<HTMLAudioElement>();
SourceNodes: Array<MediaElementAudioSourceNode> = new Array<MediaElementAudioSourceNode>();
BackgroundAudio: HTMLAudioElement;
BackgroundNode: MediaElementAudioSourceNode;
Play(buffer: Uint8Array) {
var fr = new FileReader();
fr.onload = async (ev) => {
var audioBuffer = await this.Context.decodeAudioData(fr.result as ArrayBuffer);
var bufferSource = this.Context.createBufferSource();
bufferSource.buffer = audioBuffer;
bufferSource.connect(this.Context.destination);
bufferSource.start();
}
fr.readAsArrayBuffer(new Blob([buffer], { 'type': 'audio/wav' }));
//var blob = new Blob([buffer], { 'type': 'audio/wav' });
//var src = URL.createObjectURL(blob);
//var audioElement = new Audio(src);
//var sourceNode = this.Context.createMediaElementSource(audioElement);
//sourceNode.connect(this.Context.destination);
//audioElement.play();
};
}