- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果您运行代码并转到第一首歌曲的末尾,您会发现它会自动转到下一首歌曲。我只希望它在单击“添加到播放列表”按钮时转到下一首歌曲,如果未单击它,我希望它直接跳过它。有人请帮助我,我将不胜感激
$(document).ready(function() {
$(".toggle_container").hide();
$("button.reveal").click(function() {
$(this).toggleClass("active").next().slideToggle("fast");
if ($.trim($(this).text()) === 'Add to Playlist') {
$(this).text('Remove from playlist');
} else {
$("#audioPlayer")[0].pause();
$("#audioPlayer")[0].currentTime = 0;
$(this).text('Add to Playlist');
}
return false;
});
$("a[href='" + window.location.hash + "']").parent(".reveal").click();
});
#searchbar {
padding: 15px;
border-radius: 10px;
width: 80%
}
#playlist .current-song a {
color: #7777FE;
border-color: #008ae6;
}
#playlist {
list-style: none;
}
#playlist li a {
text-decoration: none;
color: #ca0ce0;
}
#playlist {
font-size: 14.5px;
list-style: none;
margin-left: 40px;
color: blue;
}
.animals {
display: list-item;
margin-bottom: 5px;
}
#background {
border: solid;
width: 100%;
height: 75px;
margin-top: 5px;
margin-left: 5px;
}
#background2 {
border: solid;
width: 98%;
height: 75px;
margin-top: 5px;
margin-left: 5px;
}
#background3 {
border: solid;
width: 100%;
height: 75px;
margin-top: 5px;
margin-left: 0px;
}
#playlist.current-song {
border-color: #008ae6;
}
.image {
width: 100px;
float: left
}
#song {
margin-left: 13px;
margin-top: 9px;
float: left;
}
.artist {
text-align: center;
margin-right: 20px;
font-size: 12px;
margin-top: 14px;
}
.image3 {
width: 100px;
float: left;
height: 75px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<audio id="audioPlayer" preload="true" controls="true">
</audio>
<ul id="playlist">
<li class="animals"><a href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/355309/Swing_Jazz_Drum.mp3"><div id="background3"><img src="https://images.unsplash.com/photo-1575489560633-6a7609328e67?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" class="image3"/><h4 id="song">Freedom Reign</h4><h5 class="artist">Abt Goat</h5></div></a></li>
<button class="reveal">Add to Playlist </button>
<div class="toggle_container">
<div class="block">
<li class="current-song"><a href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/355309/Swing_Jazz_Drum.mp3">
<div id="background2"><img src="https://images.unsplash.com/photo-1577044685231-70e99274404c?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1567&q=80Cat" class="image" />
<h4 id="song">Tummy Why</h4>
<h5 class="artist">Revy Conover</h5>
</div>
</a></li>
</div>
</div>
</ul>
<script>
audioPlayer();
function audioPlayer() {
var currentSong = 0;
$("#playlist li a").click(function(e) {
e.preventDefault();
$("#audioPlayer")[0].src = this;
$("#audioPlayer")[0].play();
$("#playlist li").removeClass("current-song");
currentSong = $(this).parent().index();
$(this).parent().addClass("current-song");
});
$("#audioPlayer")[0].addEventListener("ended", function() {
currentSong++;
if (currentSong == $("#playlist li a").length)
currentSong = 0;
$("#playlist li").removeClass("current-song");
$("#playlist li:eq(" + currentSong + ")").addClass("current-song");
$("#audioPlayer")[0].src = $("#playlist li a")[currentSong].href;
$("#audioPlayer")[0].play();
});
}
</script>
最佳答案
给你,我做了很多改变。
制作播放列表的最佳方法是使用数组制作列表!
现在....
希望您喜欢这个修改。
var APlayer = $('audio#audioPlayer')[0];
var AP_PlayList = [];
var currentTrack = 0;
// play clicking a Song in YourPlaylist
$('body').on("click", '.AudioSong', function(e) {
var trackID = $(this).attr('id');
index = AP_PlayList.findIndex(x => x.id === trackID);
console.log(index + "::" + trackID);
audioPlayer(index);
});
// in the end of each song load next song in the arraylist and play
$('#audioPlayer').on('ended', function() {
NextSong();
});
function audioPlayer(TrackNum){
var APlayer = $('audio#audioPlayer')[0]; // Get AudioPlayer element
APlayer.setAttribute("trackid", AP_PlayList[TrackNum]['id']); //set Current Playing song TrackID to player
APlayer.setAttribute("src", AP_PlayList[TrackNum]['link']); //set Current Playing song Link/Path to player
console.log("Started Track " + AP_PlayList[TrackNum]['id']);
APlayer.loop = false; // Set Player not to loop songs. so $('#audioPlayer').on('ended', function can be detected
APlayer.load(); // Load player and play the song set
// NowPlaying song in YourPlaylist
$('span#nowplaying').html(" "); // Clear all NowPlaying
$('#your_playlist div#list').find('div#'+ AP_PlayList[TrackNum]['id'] + ' span#nowplaying').html(" › Now Playing"); // Set NowPlaying to current playing song
}
function NextSong(){
var APlayer = $('audio#audioPlayer')[0];
// Check Array song list lenght
if (AP_PlayList.length > 0) { // if songs exisxt in array list
console.log("Ended Track " + AP_PlayList[currentTrack]['id']);
currentTrack++; // get next song's track number
if(currentTrack > AP_PlayList.length-1) { currentTrack = 0 } // loop the playlist if it last song
audioPlayer(currentTrack); // play next song
} else { // if songs array list is empty
$('#your_playlist div#list div').remove(); // Clean the YourPlaylist
$('small#nosongs').fadeIn(); // Show No Songs massage in YourPlaylist
APlayer.pause(); // Stop current playing song
APlayer.setAttribute("src", ''); // Remove current playing song from player
APlayer.load(); // Reload Player
}
}
// When Remove from Playlist Button Clicked
$('body').on("click", '.removetrack', function(e) {
var TrackID = $(this).attr('data-id');
// Remove the song from Array songlist
$.each(AP_PlayList, function(i, el){
if (this.id == TrackID){
AP_PlayList.splice(i, 1);
}
});
//Chk if the removed song is playing
var APlayer = $('audio#audioPlayer')[0];
var PlayingTrackID = APlayer.getAttribute("trackid");
if (PlayingTrackID === TrackID) {
NextSong(); // if the removed song is playing skip to next song
}
$('#your_playlist div#list div#' + TrackID).remove(); // remove the song from "YourPlaylist"
$('.addtrack.'+TrackID).fadeIn(); // Show Add to playlist Button
$('.removetrack.'+TrackID).fadeOut(); // Hide Remove from playlist Button
});
// When Add to Playlist Button Clicked
$('body').on("click", '.addtrack', function(e) {
e.preventDefault();
var TrackID = $(this).attr('data-id');
var TrackLink = $(this).attr('data-src');
// check if array is empty
if (AP_PlayList.length > 0) { // if not empty
// get the object form the array songlist that macht TrackID
var emps = $.grep(AP_PlayList, function(n, i) {
return n.id === TrackID;
});
if (emps.length == 0 || emps[0].id != TrackID) { // if song is not in array songlist then add this song to array songlist
AP_PlayList.push({
id: TrackID,
link: TrackLink
});
updateHTMLlist(); // add new song and update YourPlaylist
}
} else { // if array is blank then add this song to array list
AP_PlayList.push({
id: TrackID,
link: TrackLink
});
updateHTMLlist(); // add new song and update YourPlaylist
}
console.log(AP_PlayList);
function updateHTMLlist() {
// Creating Selected YourPlaylist Part
var getSongDetails = $("ul").find(`[data-trackID='${TrackID}']`).html(); // get songs info from UL list item
$('small#nosongs').fadeOut();
$('#your_playlist div#list').append('<div class="AudioSong" id="' + TrackID + '">' + getSongDetails + '</div>');
$('<button class="removetrack active" data-id="'+ TrackID +'">Remove from Playlist</button>').appendTo('div#'+ TrackID);
}
//Load player if its not playing
if (APlayer.paused) {
audioPlayer(0);
}
$(this).parent().find('.removetrack').fadeIn(); // Show Remove from playlist Button
$(this).fadeOut(); // Hide Add to playlist Button
});
#searchbar {
padding: 15px;
border-radius: 10px;
width: 80%
}
#playlist .current-song a {
color: #7777FE;
border-color: #008ae6;
}
#playlist {
list-style: none;
}
#playlist li a {
text-decoration: none;
color: #ca0ce0;
}
#playlist {
font-size: 14.5px;
list-style: none;
margin-left: 40px;
color: blue;
}
.animals {
display: list-item;
margin-bottom: 5px;
}
#background {
border: solid;
width: 100%;
height: 75px;
margin-top: 5px;
margin-left: 5px;
}
#background2 {
border: solid;
width: 100%;
height: 100px;
margin-top: 5px;
}
#background3 {
border: solid;
width: 100%;
height: 100px;
margin-top: 5px;
}
div#your_playlist {
background-color: rgba(239,239,239,0.68);
}
div#your_playlist .AudioSong{
padding: 5px;
display: inline-block;
border: 2px solid rgba(39,200,184,0.79);
width: 300px;
}
div#your_playlist .AudioSong:hover{
border: 2px solid rgba(255,176,5,1.00);
cursor: pointer;
}
#playlist.current-song {
border-color: #008ae6;
}
.image {
width: auto;
height: 100px;
float: left;
padding-right: 5px;
}
#song {
margin: 0;
text-align: left;
}
.artist {
margin: 0;
padding: 5px;
text-align: left;
font-size: 12px;
}
.image3 {
width: 100px;
float: left;
height: 75px;
}
button.removetrack{
display: none;
}
button.active{
display: block;
opacity: 1;
visibility: visible;
}
#nowplaying{
animation:blinkingText 0.5s infinite;
font-size: 12px;
font-weight: bold;
}
@keyframes blinkingText{
0%{ color: rgba(0,0,0,0.00); }
25%{ color: rgba(0,0,0,0.25); }
50%{ color: rgba(0,0,0,0.50); }
75%{ color: rgba(0,0,0,0.75); }
100%{ color: rgba(0,0,0,1.00); }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<audio style="width: 100%" id="audioPlayer" preload="true" controls="true" autoplay></audio>
<div id="your_playlist">
<h3>Your Playlist</h3>
<div id="list">
<small id="nosongs">No Songs found ! Add songs to playlist,<br></small>
</div>
</div>
<hr>
<h3>Avaibale Song List</h3>
<ul id="playlist">
<li class="track" id="track1">
<div id="background3" class="background" data-trackID="1">
<img src="https://images.unsplash.com/photo-1575489560633-6a7609328e67?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjE0NTg5fQ" class="image"/>
<h4 id="song"> Freedom Reign</h4>
<h5 class="artist"> Abt Goat</h5>
<span id="nowplaying"> </span>
</div>
<button class="addtrack 1" data-id="1" data-src="https://archive.org/download/slac2002-02-15/slac2002-02-15d1t07_64kb.mp3">Add to Playlist</button>
<button class="removetrack 1" data-id="1">Remove from Playlist</button>
</li>
<li class="track" id="track2">
<div id="background2" class="background" data-trackID="2">
<img src="https://images.unsplash.com/photo-1577044685231-70e99274404c?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1567&q=80Cat" class="image" />
<h4 id="song"> Tummy Why</h4>
<h5 class="artist"> Revy Conover</h5>
<span id="nowplaying"> </span>
</div>
<button class="addtrack 2" data-id="2" data-src="https://archive.org/download/ra2007-07-21/ra2007-07-21d1t05_64kb.mp3">Add to Playlist</button>
<button class="removetrack 2" data-id="2">Remove from Playlist</button>
</li>
</ul>
关于javascript - 如何使音频仅在添加到播放列表时播放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59572468/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!