51 lines
2.3 KiB
JavaScript
51 lines
2.3 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.DEFAULT_BELL_SOUND = 'data:audio/wav;base64,UklGRigBAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQQBAADpAFgCwAMlBZoG/wdmCcoKRAypDQ8PbRDBEQQTOxRtFYcWlBePGIUZXhoiG88bcBz7HHIdzh0WHlMeZx51HmkeUx4WHs8dah0AHXwc3hs9G4saxRnyGBIYGBcQFv8U4RPAEoYRQBACD70NWwwHC6gJOwjWBloF7gOBAhABkf8b/qv8R/ve+Xf4Ife79W/0JfPZ8Z/wde9N7ijtE+wU6xvqM+lb6H7nw+YX5mrlxuQz5Mzje+Ma49fioeKD4nXiYeJy4pHitOL04j/jn+MN5IPkFOWs5U3mDefM55/ogOl36m7rdOyE7abuyu8D8Unyj/Pg9D/2qfcb+Yn6/vuK/Qj/lAAlAg==';
|
|
var SoundManager = (function () {
|
|
function SoundManager(_terminal) {
|
|
this._terminal = _terminal;
|
|
}
|
|
Object.defineProperty(SoundManager, "audioContext", {
|
|
get: function () {
|
|
if (!SoundManager._audioContext) {
|
|
var audioContextCtor = window.AudioContext || window.webkitAudioContext;
|
|
if (!audioContextCtor) {
|
|
console.warn('Web Audio API is not supported by this browser. Consider upgrading to the latest version');
|
|
return null;
|
|
}
|
|
SoundManager._audioContext = new audioContextCtor();
|
|
}
|
|
return SoundManager._audioContext;
|
|
},
|
|
enumerable: true,
|
|
configurable: true
|
|
});
|
|
SoundManager.prototype.playBellSound = function () {
|
|
var ctx = SoundManager.audioContext;
|
|
if (!ctx) {
|
|
return;
|
|
}
|
|
var bellAudioSource = ctx.createBufferSource();
|
|
ctx.decodeAudioData(this._base64ToArrayBuffer(this._removeMimeType(this._terminal.options.bellSound)), function (buffer) {
|
|
bellAudioSource.buffer = buffer;
|
|
bellAudioSource.connect(ctx.destination);
|
|
bellAudioSource.start(0);
|
|
});
|
|
};
|
|
SoundManager.prototype._base64ToArrayBuffer = function (base64) {
|
|
var binaryString = window.atob(base64);
|
|
var len = binaryString.length;
|
|
var bytes = new Uint8Array(len);
|
|
for (var i = 0; i < len; i++) {
|
|
bytes[i] = binaryString.charCodeAt(i);
|
|
}
|
|
return bytes.buffer;
|
|
};
|
|
SoundManager.prototype._removeMimeType = function (dataURI) {
|
|
var splitUri = dataURI.split(',');
|
|
return splitUri[1];
|
|
};
|
|
return SoundManager;
|
|
}());
|
|
exports.SoundManager = SoundManager;
|
|
//# sourceMappingURL=SoundManager.js.map
|