1/** 2 * Permet de synchroniser un fichier audio avec une vidéo HTML5 3 */ 4;var audiodescription = (function () { 5 "use strict"; 6 var publicStuff = {}, audiodescription = { 7 config: { 8 defaultAudioType: 'audio/mp3' 9 }, 10 aAudiodescriptionSrc: [], 11 aIdVideo: [], 12 init: function () { 13 var i; 14 for (i = 0 ; i < audiodescription.aIdVideo.length ; i++) { 15 jwplayer(audiodescription.aIdVideo[i]) 16 .onPlay(audiodescription.playAudio) 17 .onPause(audiodescription.pauseAudio) 18 .onBuffer(audiodescription.pauseAudio) 19 .onIdle(audiodescription.pauseAudio) 20 .onSeek(audiodescription.seekAudio) 21 .onVolume(audiodescription.volumeAudio); 22 $('<audio>') 23 .attr('id', 'audio_' + audiodescription.aIdVideo[i]) 24 .append($('<source>') 25 .attr('src', audiodescription.aAudiodescriptionSrc[i]) 26 .attr('type', audiodescription.config.defaultAudioType)) 27 .insertAfter('#' + audiodescription.aIdVideo[i]); 28 if(document.getElementById('audio_' + audiodescription.aIdVideo[i]).load) { 29 document.getElementById('audio_' + audiodescription.aIdVideo[i]).load(); 30 } 31 } 32 }, 33 addAudioDescription: function (idVideo, audiodescriptionSrc) { 34 audiodescription.aIdVideo.push(idVideo); 35 audiodescription.aAudiodescriptionSrc.push(audiodescriptionSrc); 36 }, 37 canReadAudio: function (elmt) { 38 var bIsHtml5 = jwplayer(this.id).getRenderingMode() === 'html5', 39 bAudioCompatible = audiodescription.getRelatedAudio(elmt).canPlayType(audiodescription.config.defaultAudioType); 40 return bIsHtml5 && bAudioCompatible; 41 }, 42 getRelatedAudio: function (elmt) { 43 return document.getElementById('audio_' + elmt.id); 44 }, 45 playAudio: function () { 46 if(audiodescription.canReadAudio(this)){ 47 document.getElementById('audio_' + this.id).play(); 48 } 49 }, 50 pauseAudio: function () { 51 if(audiodescription.canReadAudio(this)){ 52 document.getElementById('audio_' + this.id).pause(); 53 } 54 }, 55 seekAudio: function (event) { 56 if(audiodescription.canReadAudio(this)){ 57 document.getElementById('audio_' + this.id).currentTime = event.offset; 58 } 59 }, 60 volumeAudio: function (event) { 61 if(audiodescription.canReadAudio(this)){ 62 document.getElementById('audio_' + this.id).volume = (event.volume/100); 63 } 64 } 65 }; 66 $(document).ready(audiodescription.init); 67 publicStuff.addAudioDescription = audiodescription.addAudioDescription; 68 return publicStuff; 69}());
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.