An example of using the Web Audio API:
var UnprefixedAudioContext = window.AudioContext || window.webkitAudioContext;
var context;
var volumeNode;
var soundBuffer;
context = new UnprefixedAudioContext();
volumeNode = context.createGain();
volumeNode.connect(context.destination);
volumeNode.gain.value = 1;
context.decodeAudioData(base64ToArrayBuffer(getTapWarm()), function (decodedAudioData) {
soundBuffer = decodedAudioData;
});
function play(buffer) {
var source = context.createBufferSource();
source.buffer = buffer;
source.connect(volumeNode);
(source.start || source.noteOn).call(source, 0);
};
function playClick() {
play(soundBuffer);
}
Running this code inside a UIWebView
produces the desired sound, but switching to the Music app and playing a song interrupts the sound when returning to the app with the UIWebView
.
However, this issue doesn't occur when running the same code in Safari.
Are there any solutions to prevent this interruption in the sound?
Explore the complete fiddle here: