gpt4 book ai didi

mediaelement.js 和自定义播放列表

转载 作者:行者123 更新时间:2023-12-04 00:08:00 26 4
gpt4 key购买 nike

我有这样的代码(例如):

<script>
$('audio').mediaelementplayer();
</script>

<audio id="mejs" controls="controls">
<source src="/media/file-2.mp3" type="audio/mp3" />
</audio>

<ul class="mejs-list">
<li>/media/file-1.mp3</li>
<li class="current">/media/file-2.mp3</li>
<li>/media/file-3.mp3</li>
</ul>

我需要按队列(一个接一个)播放列表中的音频文件。

我该怎么办 播放完当前文件后,从列表中更改下一个文件的音频源并开始播放下一个?

更新 : 相关话题 mediaelement.js and playlist但答案是关于使用许多 mediaelementplayer() 实例。

最佳答案

制作代码 mediaelement.js 的基本播放列表 :

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTML5 MediaElement</title>

<script src="../build/jquery.js"></script>
<script src="../build/mediaelement-and-player.min.js"></script>

<link rel="stylesheet" href="../build/mediaelementplayer.min.css" />

<style>
.mejs-list li:hover {
background: #ffa;
cursor: pointer;
}
.mejs-list li.current {
background: #cddfff;
}
</style>

<script>
$(function(){
$('video,audio').mediaelementplayer({
success: function (mediaElement, domObject) {
mediaElement.addEventListener('ended', function (e) {
mejsPlayNext(e.target);
}, false);
},
keyActions: []
});

$('.mejs-list li').click(function() {
$(this).addClass('current').siblings().removeClass('current');
var audio_src = $(this).text();
$('audio#mejs:first').each(function(){
this.player.pause();
this.player.setSrc(audio_src);
this.player.play();
});
});

});

function mejsPlayNext(currentPlayer) {
if ($('.mejs-list li.current').length > 0){ // get the .current song
var current_item = $('.mejs-list li.current:first'); // :first is added if we have few .current classes
var audio_src = $(current_item).next().text();
$(current_item).next().addClass('current').siblings().removeClass('current');
console.log('if '+audio_src);
}else{ // if there is no .current class
var current_item = $('.mejs-list li:first'); // get :first if we don't have .current class
var audio_src = $(current_item).next().text();
$(current_item).next().addClass('current').siblings().removeClass('current');
console.log('elseif '+audio_src);
}

if( $(current_item).is(':last-child') ) { // if it is last - stop playing
$(current_item).removeClass('current');
}else{
currentPlayer.setSrc(audio_src);
currentPlayer.play();
}
}
</script>

</head>

<body>

<audio id="mejs" src="../media/audio-01.mp3" type="audio/mp3" controls="controls"></audio>
<ul class="mejs-list">
<li class="current">../media/audio-01.mp3</li>
<li>../media/audio-02.mp3</li>
<li>../media/audio-03.mp3</li>
</ul>

</body>
</html>

关于mediaelement.js 和自定义播放列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com