Bonjour,
Je souhaiterais faire un bouton on/off sur mon site (dans le meme style que ce site la : http://www.powergloveaudio.com/)
J'ai monté mon site sur wordpress, j'ai integré ma video avec un plugin Jquery du coup le son se coupe quand je clique sur l'image. Mais j'aurais besion que quand la musique se lance la bouton est sur play et quqnd je clique dessus la musique s'arrete et le bouton sur met sur pause
Je ne sais pas si cela sera assez clair mais est-ce quelqu'un peut me guider
Merci beaucoup

J'ai essaye avec ce code la mais ca ne fonctionne pas je ne vois pas l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
$('document').ready(function() {
 
      $('.js-mute-audio').click(function() {
		$(this).toggleClass("is-mute");
	}
  });
Voici mon code Jquery pour lancer la video.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
(function ($, window) {
 
    // test for feature support and return if failure
 
    // defaults
    var defaults = {
        ratio: 16/9, // usually either 4/3 or 16/9 -- tweak as needed
        videoId: 'RxJG5rmQusQ', // toy robot in space is a good default, no?
        repeat: true,
        width: $(window).width(),
        wrapperZIndex: 99,
        playButtonClass: 'tubular-play',
        pauseButtonClass: 'tubular-pause',
        muteButtonClass: 'tubular-mute',
        volumeUpClass: 'tubular-volume-up',
        volumeDownClass: 'tubular-volume-down',
        increaseVolumeBy: 10,
        start: 0
    };
 
    // methods
 
    var tubular = function(node, options) { // should be called on the wrapper div
        var options = $.extend({}, defaults, options),
            $body = $('body') // cache body node
            $node = $(node); // cache wrapper node
 
        // build container
        var tubularContainer = '<div id="tubular-container" style="overflow: hidden; position: fixed; z-index: 1; width: 100%; height: 100%"><div id="tubular-player" style="position: absolute"></div></div><div id="tubular-shield" style="width: 100%; height: 100%; z-index: 2; position: absolute; left: 0; top: 0;"></div>';
 
        // set up css prereq's, inject tubular container and set up wrapper defaults
        $('html,body').css({'width': '100%', 'height': '100%'});
        $body.prepend(tubularContainer);
        $node.css({position: 'relative', 'z-index': options.wrapperZIndex});
 
        // set up iframe player, use global scope so YT api can talk
        window.player;
        window.onYouTubeIframeAPIReady = function() {
            player = new YT.Player('tubular-player', {
                width: options.width,
                height: Math.ceil(options.width / options.ratio),
                videoId: options.videoId,
                playerVars: {
                    controls: 0,
                    showinfo: 0,
                    modestbranding: 1,
                    wmode: 'transparent'
                },
                events: {
                    'onReady': onPlayerReady,
                    'onStateChange': onPlayerStateChange
                }
            });
        }
 
        window.onPlayerReady = function(e) {
            resize();
            if (options.mute) e.target.mute();
            e.target.seekTo(options.start);
            e.target.playVideo();
        }
 
        window.onPlayerStateChange = function(state) {
            if (state.data === 0 && options.repeat) { // video ended and repeat option is set true
                player.seekTo(options.start); // restart
            }
        }
 
        // resize handler updates width, height and offset of player after resize/init
        var resize = function() {
            var width = $(window).width(),
                pWidth, // player width, to be defined
                height = $(window).height(),
                pHeight, // player height, tbd
                $tubularPlayer = $('#tubular-player');
 
            // when screen aspect ratio differs from video, video must center and underlay one dimension
 
            if (width / options.ratio < height) { // if new video height < window height (gap underneath)
                pWidth = Math.ceil(height * options.ratio); // get new player width
                $tubularPlayer.width(pWidth).height(height).css({left: (width - pWidth) / 2, top: 0}); // player width is greater, offset left; reset top
            } else { // new video width < window width (gap to right)
                pHeight = Math.ceil(width / options.ratio); // get new player height
                $tubularPlayer.width(width).height(pHeight).css({left: 0, top: (height - pHeight) / 2}); // player height is greater, offset top; reset left
            }
 
        }
 
        // events
        $(window).on('resize.tubular', function() {
            resize();
        })
 
        $('body').on('click','.' + options.playButtonClass, function(e) { // play button
            e.preventDefault();
            player.playVideo();
        }).on('click', '.' + options.pauseButtonClass, function(e) { // pause button
            e.preventDefault();
            player.pauseVideo();
        }).on('click', '.' + options.muteButtonClass, function(e) { // mute button
            e.preventDefault();
            (player.isMuted()) ? player.unMute() : player.mute();
        }).on('click', '.' + options.volumeDownClass, function(e) { // volume down button
            e.preventDefault();
            var currentVolume = player.getVolume();
            if (currentVolume < options.increaseVolumeBy) currentVolume = options.increaseVolumeBy;
            player.setVolume(currentVolume - options.increaseVolumeBy);
        }).on('click', '.' + options.volumeUpClass, function(e) { // volume up button
            e.preventDefault();
            if (player.isMuted()) player.unMute(); // if mute is on, unmute
            var currentVolume = player.getVolume();
            if (currentVolume > 100 - options.increaseVolumeBy) currentVolume = 100 - options.increaseVolumeBy;
            player.setVolume(currentVolume + options.increaseVolumeBy);
        })
    }
 
    // load yt iframe js api
 
    var tag = document.createElement('script');
    tag.src = "//www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
 
    // create plugin
 
    $.fn.tubular = function (options) {
        return this.each(function () {
            if (!$.data(this, 'tubular_instantiated')) { // let's only run one
                $.data(this, 'tubular_instantiated', 
                tubular(this, options));
            }
        });
    }
 
})(jQuery, window);

Voici mon code Jquery qui appelle ma fontion

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$('document').ready(function() {
	var options = { videoId: 'RxJG5rmQusQ', start: 3 };
	$('#wrapper').tubular(options);
});


Voici le code html

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
<em class="mute-audio tubular-mute js-mute-audio is-mute" title="Mute audio">mute audio</em>



Et enfin le css

Code css : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.mute-audio {
    background: rgba(0, 0, 0, 0) url(".../images/audio-icon-2x.png") no-repeat scroll center center / 20px 20px;
    cursor: pointer;
    height: 20px;
    opacity: 0.6;
    position: absolute;
    text-indent: -9999px;
    transition: opacity 0.25s ease-in-out 0s;
    width: 20px;
    z-index: 1000;
margin-left: 6px;
 margin-right: 6px;
}
 
.mute-audio:hover {
    opacity: 1;
}
 
.mute-audio .is-mute {
background: rgba(0, 0, 0, 0) url(".../images/audio-icon-mute-2x.png") no-repeat scroll center center / 20px 20px;}