PageSourceSearch

https://www.ville-claix.fr/include/js/audiodescription.js

js ville-claix.fr collected 2026-10-02 17:27:53 UTC 3,050 bytes, 69 lines download raw bytes

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.