summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xemcc13
1 files changed, 11 insertions, 2 deletions
diff --git a/emcc b/emcc
index 46efe0da..eeb8fd7b 100755
--- a/emcc
+++ b/emcc
@@ -985,14 +985,23 @@ try:
var b = new Blob([byteArray.buffer], { type: '%(mimetype)s' });
var url = URLObject.createObjectURL(b); // XXX we never revoke this!
var audio = new Audio();
+ audio.removedDependency = false;
audio['oncanplaythrough'] = function() { // XXX string for closure
audio['oncanplaythrough'] = null;
preloadedAudios['%(filename)s'] = audio;
- removeRunDependency();
+ if (!audio.removedDependency) {
+ removeRunDependency();
+ audio.removedDependency = true;
+ }
};
audio.onerror = function(event) {
- console.log('Audio %(filename)s could not be decoded');
+ if (!audio.removedDependency) {
+ console.log('Audio %(filename)s could not be decoded or timed out trying to decode');
+ removeRunDependency();
+ audio.removedDependency = true;
+ }
};
+ setTimeout(audio.onerror, 2000); // workaround for chromium bug 124926 (still no audio with this, but at least we don't hang)
audio.src = url;
} else {
preloadedAudios['%(filename)s'] = new Audio(); // empty shim