(function($) {
'use strict';
// Variable pour stocker l'élément audio
var persistentPlayer = null;
var audioElement = null;
// Sauvegarder le lecteur au chargement initial
$(document).ready(function() {
persistentPlayer = $('#audio-player-global').clone(true, true);
audioElement = persistentPlayer.find('audio')[0];
});
// Hook sur les transitions Ajax de Rhye
if (window.kinsey && window.kinsey.update) {
var originalUpdate = window.kinsey.update;
window.kinsey.update = function() {
// Sauvegarder l'état actuel de la lecture
var wasPlaying = false;
var currentTime = 0;
if (audioElement && !audioElement.paused) {
wasPlaying = true;
currentTime = audioElement.currentTime;
}
// Appeler la fonction originale
originalUpdate.apply(this, arguments);
// Restaurer le lecteur après la transition
setTimeout(function() {
var newPlayer = $('#audio-player-global');
if (newPlayer.length && persistentPlayer) {
newPlayer.replaceWith(persistentPlayer);
audioElement = persistentPlayer.find('audio')[0];
// Restaurer l'état de lecture
if (wasPlaying && audioElement) {
audioElement.currentTime = currentTime;
audioElement.play();
}
}
}, 100);
};
}
// Alternative : Mutation Observer pour détecter les changements
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList' && $('#audio-player-global').length === 0) {
$('body').append(persistentPlayer);
audioElement = persistentPlayer.find('audio')[0];
}
});
});
observer.observe(document.body, {
childList: true,
subtree: false
});
})(jQuery);