How to add a new function for replay audio
Hi there, I am new to jQuery and find a Code Snipped which I use, but there is a missing function for replay audio files. And I searched now for days to find a solution. Can someone give me a hint?
Currently you can start each audio file and pause it and to continue you press play again. If the file then ends, you can't replay the audio, and this is my missing function which I don't get to work.
- HTML Audio Playbuttons
- <audio id="myAudio"> </audio>
- <div data-pos="0" data-src="test1.mp3" data-src2=""><button class="btnPlayPause button">►||</button>Audio 1</div>
- <div data-pos="0" data-src="test2.mp3" data-src2=""><button class="btnPlayPause button">►||</button>Audio 2</div>
- <div data-pos="0" data-src="test3.mp3" data-src2=""><button class="btnPlayPause button">►||</button>Audio 3</div>
- <div data-pos="0" data-src="test4.mp3" data-src2=""><button class="btnPlayPause button">►||</button>Audio 4</div>
- jQuery Code Snippet
- jQuery(function (){
- var myAudio = document.getElementById("myAudio");
- var current = null;
- var playingString = "<span aria-hidden=\"true\" data-icon=\"\"></span><span class=\"screen-reader-text\">||</span>";
- var pausedString = "<span aria-hidden=\"true\" data-icon=\"\"></span><span class=\"screen-reader-text\">►</span>";
- $(document.body).on('click', '.btnPlayPause',function(e){
- var target = this;
- //console.log(target, current); //return;
- if (current == target) {
- target.innerHTML = pausedString;
- target.parentNode.setAttribute('data-pos', myAudio.currentTime); //start from paused
- myAudio.pause();
- current = null;
- } else { // current!=target
- if (current != null) {
- current.innerHTML = pausedString;
- current.parentNode.setAttribute('data-pos', '0'); //reset position
- target.parentNode.setAttribute('data-pos', myAudio.currentTime); //start from paused
- }
- current = target;
- target.innerHTML = playingString;
- if(myAudio.canPlayType && myAudio.canPlayType("audio/mpeg") != "") { // MP3
- myAudio.src = target.parentNode.getAttribute('data-src');
- } else if(myAudio.canPlayType && myAudio.canPlayType("audio/ogg") != "") { // OGG
- myAudio.src = target.parentNode.getAttribute('data-src2');
- } else {
- return; // no audio support
- }
- myAudio.play();
- myAudio.onloadeddata = function () {
- myAudio.currentTime = parseFloat(target.parentNode.getAttribute('data-pos'));
- };
- }
-
- });
- $(document.body).on('click', '.btnMute',function(e){
- myAudio.muted = !myAudio.muted;
- $('.btnMute').each(function(){
- if (myAudio.muted) {
- this.innerHTML = "<span aria-hidden=\"true\" data-icon=\"\"></span><span class=\"screen-reader-text\">Muted</span>";
- } else {
- this.innerHTML = "<span aria-hidden=\"true\" data-icon=\"\"></span><span class=\"screen-reader-text\">Audible</span>";
- }
- });
- });
- });