How would I write a function that stops ALL instances of playing html5 audio in the DOM?
html5 audio
$.each($('audio'), function () {
this.pause();
});
This just finds all the <audio>
elements in the DOM and uses the standard API to pause the playback for each.
Here's some excellent reading about <audio>
and <video>
tags: https://developer.mozilla.org/en/Using_HTML5_audio_and_video
The documentation for the AudioPlayerV1
script states this is how you pause an <audio>
element:
$('#audio_id').AudioPlayerV1('pause');
Source: http://1.s3.envato.com/files/14653378/index.html#how-to-use
It looks like the AudioPlayerV1
plugin is supposed to be called on a selection of DOM element(s) and passed in an option.
To run the plugin to pause multiple <audio>
elements you should be able to do this:
$('audio').AudioPlayerV1('pause');
Which selects the <audio>
elements in the DOM and passes them to the AudioPlayerV1
plugin. the plugin should be written to handle this but if it isn't then you have to call the plugin on each element. Inside a loop would be easiest:
$.each($('audio'), function () {
$(this).AudioPlayerV1('pause');
});
first you have to set an id for your audio element
in your js :
var ply = document.getElementById('player');
var oldSrc = ply.src;
// just to remember the old source
ply.src = "";
// to stop the player you have to replace the source with nothing
This worked for me. .stop()
threw an error.
$.each($('audio'), function () {
this.pause();
});