Merge pull request #73 from Microsoft/more_sounds

Limit sound concurrency to 1
This commit is contained in:
Caitlin Hennessy 2017-12-08 11:21:21 -08:00 committed by GitHub
commit 5656031e2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 2 deletions

View File

@ -257,7 +257,7 @@ namespace sounds {
namespace music {
let numSoundsPlaying = 0;
let soundsLimit = 3;
const soundsLimit = 1;
/**
* Plays a sound

View File

@ -6,6 +6,8 @@ namespace pxsim.music {
}
namespace pxsim.SoundMethods {
let numSoundsPlaying = 0;
const soundsLimit = 1;
export function buffer(buf: RefBuffer) {
return incr(buf)
@ -20,12 +22,17 @@ namespace pxsim.SoundMethods {
}
export function play(buf: RefBuffer, volume: number) {
if (!buf || numSoundsPlaying >= soundsLimit) {
return Promise.resolve();
}
return new Promise<void>(resolve => {
let url = "data:audio/wav;base64," + btoa(uint8ArrayToString(buf.data))
let audio = new Audio(url)
audio.onended = () => {
resolve()
resolve();
numSoundsPlaying--;
}
numSoundsPlaying++;
audio.play()
})
}