Мне удалось получить супер базовую (читай: хакерскую) демонстрацию плейлиста, работающего в теме WordPress, которая у меня есть.Все, что вам нужно сделать, это настроить несколько медиа-элементов, используя набор идентификаторов, класс или в этом случае тег <audio>
.
Затем вы можете использовать JS, чтобы увидеть, когда игрок закончил (прекратил играть музыку), и выполнить некоторые базовые условия, чтобы увидеть, какой игрок играет, какой игрок должен играть следующим, и если следующего игрока нет, начните сначала.с начала.Опять же, это очень смешно, но, похоже, работает на меня.
HTML:
<figure class="entry-audio">
<audio id="wp_mep_1" controls="controls">
<source src="linkto/music.mp3" type="audio/mp3" />
<object width="100%" height="23" type="application/x-shockwave-flash" data="flashmediaelement.swf">
<param name="movie" value="flashmediaelement.swf" />
<param name="flashvars" value="controls=true&file=linkto/music.mp3" />
</object>
</audio>
</figure>
<!-- .entry-audio -->
<figure class="entry-audio">
<audio id="wp_mep_2" controls="controls">
<source src="linkto/music.mp3" type="audio/mp3" />
<object width="100%" height="23" type="application/x-shockwave-flash" data="flashmediaelement.swf">
<param name="movie" value="flashmediaelement.swf" />
<param name="flashvars" value="controls=true&file=linkto/music.mp3" />
</object>
</audio>
</figure>
<!-- .entry-audio -->
<figure class="entry-audio">
<audio id="wp_mep_3" controls="controls">
<source src="linkto/music.mp3" type="audio/mp3" />
<object width="100%" height="23" type="application/x-shockwave-flash" data="flashmediaelement.swf">
<param name="movie" value="flashmediaelement.swf" />
<param name="flashvars" value="controls=true&file=linkto/music.mp3" />
</object>
</audio>
</figure>
<!-- .entry-audio -->
JavaScript:
jQuery(function (jQuery) {
// make an array for the mediaelement players
var mediaElementPlayers = new Array();
// run mediaelement.js (Ignore options)
jQuery('audio').mediaelementplayer({
iPadUseNativeControls: false,
iPhoneUseNativeControls: false,
AndroidUseNativeControls: false,
pauseOtherPlayers: true,
success: function (mediaElement, domObject) {
// add this mediaelement to the mediaElementPlayers array
mediaElementPlayers.push(mediaElement);
console.log(mediaElement);
mediaElement.addEventListener('ended', function (e) {
playNext(e.target);
}, false);
},
keyActions: []
})
// find the current player and start playing the following player
function playNext(currentPlayer) {
for (i = 0; i < mediaElementPlayers.length; i++) {
if (mediaElementPlayers[i] == currentPlayer) {
if (mediaElementPlayers[i + 1] == undefined) { // If this is the last player Start from the beginning
mediaElementPlayers[0].play();
} else { // Start the next player
mediaElementPlayers[i + 1].play();
}
}
}
}
});