У меня есть 3 экземпляра jPlayer на одной странице. По умолчанию видны только кнопки воспроизведения и остановки. Когда вы нажимаете кнопку воспроизведения, остальная часть проигрывателя проигрывается с использованием jQuery UI.Могу ли я скрыть элементы jPlayer на событии паузы, а не на событии click в этом проигрывателе с несколькими экземплярами? Если да, то как?
Я просто начать с того, у меня есть прогресс на jsfiddle доступен здесь: http://jsfiddle.net/adbakke/ooLj5h6j/
То, что я хочу, чтобы произошло это, когда вы нажимаете на игру, он открывает для управления плеером (кроме воспроизведения/остановки), и когда вы останавливаетесь, останавливаетесь или заканчиваете трек, он сворачивает элементы управления проигрывателя (кроме воспроизведения/остановки).
Остальные игроки останавливаются при воспроизведении, и когда это происходит, я хочу, чтобы элементы пользовательского интерфейса, связанные с этими другими игроками, рушались, как если бы нажали кнопки паузы/остановки.
Одна вещь, которую я попробовал в своем примере в JSFiddle, заключается в том, чтобы функция init для первого игрока также спрятала элементы другого и конкретного игрока, но это создает проблемы, когда кто-то нажимает несколько раз на кнопку воспроизведения или нажимает на них быстро и т. д.
Как я могу изменить это, чтобы скрыть элементы от каждого игрока, когда этот игрок останавливается или останавливается, независимо от того, была ли она приостановлена из-за нажатия на паузу или была вызвана функция «pauseOthers» другого игрока?
Вот некоторый код ссылка, а также проверить выше связанный JSFiddle:
В jPlayer HTML У меня есть выглядят следующим образом:
<!-- jPlayer Start -->
<div id="jquery_jplayer_1" class="jp-jplayer"></div>
<div id="jp_container_1" class="jp-audio" role="application" aria-label="media player">
<div class="jp-type-single">
<div class="jp-gui jp-interface">
<div class="jp-controls">
<button class="jp-play" role="button" tabindex="0">play</button>
<button class="jp-stop" role="button" tabindex="0">stop</button>
</div>
<div class="jp-progress hideme">
<div class="jp-seek-bar">
<div class="jp-play-bar"></div>
</div>
</div>
<div class="jp-volume-controls hideme">
<button class="jp-mute" role="button" tabindex="0">mute</button>
<button class="jp-volume-max" role="button" tabindex="0">max volume</button>
<div class="jp-volume-bar">
<div class="jp-volume-bar-value"></div>
</div>
</div>
<div class="jp-time-holder hideme">
<div class="jp-current-time" role="timer" aria-label="time"> </div>
<div class="jp-duration" role="timer" aria-label="duration"> </div>
</div>
</div>
</div>
</div>
<!-- End Player 1 -->
Этот скрипт работает в нижней части страницы, и скрывает наш игрок элементы что не играть или остановить кнопки, а затем использует функцию щелчка, чтобы показать игроку и другие элементы при нажатии кнопки воспроизведения, и скрыть их при нажатии кнопки стоп:
<script>
$(document).ready(function() {
$('.hideme').hide();
$('.jp-play').click(
function() {
$(this).parent().parent('.jp-interface').toggleClass('showme' , 1000, 'easeInOutExpo');
$(this).parent().siblings('.hideme').toggle('slide', 'easeInOutExpo', 1000);
});
$('.jp-stop').click(function() {
$(this).closest('.jp-interface').removeClass('showme', 1000, 'easeInOutExpo');
$(this).parent().siblings('.hideme').hide('slide', 'easeInOutExpo', 1000);
});
});
</script>
Edit: Вот мой полный INIT (до этого был только отрывок из INIT):
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer({
ready: function() {
$(this).jPlayer("setMedia", {
title: "Stirring of a fool",
mp3: "http://mindevo.com/geewhiz/audio/comps-mixes/Gee-Whiz_-_Funky-Little-Party.mp3",
m4a: "http://www.jplayer.org/audio/m4a/Miaow-08-Stirring-of-a-fool.m4a",
oga: "http://www.jplayer.org/audio/ogg/Miaow-08-Stirring-of-a-fool.ogg"
});
},
play: function() {
$(".jp-jplayer").not(this).jPlayer("stop");
$('#jp_container_2 .jp-interface').removeClass('showme', 1000, 'easeInOutExpo');
},
swfPath: "../../js",
supplied: "mp3,m4a, oga",
wmode: "window",
globalVolume: true,
useStateClassSkin: true,
autoBlur: false,
smoothPlayBar: true,
keyEnabled: true,
ended: function(event) {
$('.jp-interface').removeClass('showme', 1000, 'easeInOutExpo');
$('.hideme').hide('slide', 'easeInOutExpo', 1000);
}
});
$("#jquery_jplayer_2").jPlayer({
ready: function() {
$(this).jPlayer("setMedia", {
title: "Hidden",
mp3: "http://mindevo.com/geewhiz/audio/comps-mixes/DJ-Biscuit-&-Doc-Brown---New-Magic-In-A-Dusty-World.mp3",
m4a: "http://www.jplayer.org/audio/m4a/Miaow-02-Hidden.m4a",
oga: "http://www.jplayer.org/audio/ogg/Miaow-02-Hidden.ogg"
});
},
play: function() { // To avoid multiple jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
swfPath: "../../js",
supplied: "mp3,m4a, oga",
cssSelectorAncestor: "#jp_container_2",
wmode: "window",
globalVolume: true,
useStateClassSkin: true,
autoBlur: false,
smoothPlayBar: true,
keyEnabled: true,
ended: function(event) {
$('.jp-interface').removeClass('showme', 1000, 'easeInOutExpo');
$('.hideme').hide('slide', 'easeInOutExpo', 1000);
}
});
$("#jquery_jplayer_3").jPlayer({
ready: function() {
$(this).jPlayer("setMedia", {
title: "Bubble",
mp3: "http://mindevo.com/geewhiz/audio/comps-mixes/Gee-Whiz---Jazz.mp3",
m4a: "http://www.jplayer.org/audio/m4a/Miaow-07-Bubble.m4a",
oga: "http://www.jplayer.org/audio/ogg/Miaow-07-Bubble.ogg"
});
},
play: function() { // To avoid multiple jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
swfPath: "../../js",
supplied: "mp3,m4a, oga",
cssSelectorAncestor: "#jp_container_3",
wmode: "window",
globalVolume: true,
useStateClassSkin: true,
autoBlur: false,
smoothPlayBar: true,
keyEnabled: true,
ended: function(event) {
$('.jp-interface').removeClass('showme', 1000, 'easeInOutExpo');
$('.hideme').hide('slide', 'easeInOutExpo', 1000);
}
});
});
достаточно кода. покажите полный код того, как вы инициируете плагин. – r3wt
Отредактировано для включения полного init. –