I just spent days making a simple buzzer in an iOS app! You push a big red button and it plays a buzzing sound.
Actually, it took about 20 minutes to get it working, but there was a 1-2 second pause after pushing the button before the sound would play, which is unacceptable.
So of course I googled Preload Audio Phonegap and the found a bunch of plugins that claim to do that. Implementing them was time consuming and no matter what I did I just couldn't get them working.
Then I thought: I wonder what will happen if I just play the file once at zero volume to preload it?
Well, folks, that's all it took. I feel so foolish for wasting my own time; maybe this post will help you not waste yours.
function playAudio(src, preload) {
//requires Cordova Core Media plugin
//src is the path to the file in your www folder
// for example, audio/buzzer.mp3
function audioSuccess() {
console.log("[AUDIO]: Created " + src);
}
function audioError(msg) {
console.log("[AUDIO]: Error " + msg);
}
// Create Media object from src
my_media = new Media(src, audioSuccess, audioError);
// Play audio
if (preload === true) {
my_media.setVolume(0);
} else {
my_media.setVolume(1);
}
my_media.play();
}