我正在通过 SoundCloud 制作音乐播放器。它有一个“播放/暂停”按钮和一个播放列表。默认情况下,“播放/暂停”按钮播放播放列表中的第一首歌曲。但如果播放播放列表中的一首歌曲,那么它将是当前歌曲,并且“播放/暂停”按钮将基于此起作用。我的问题是,当我选择一首歌曲时,它开始播放,但上一首歌曲不会停止。除非我在点击另一首歌曲之前按“播放/暂停”按钮。
代码如下:
var currentTrack = $("ul li").first().attr('id');
查找单击项目的 id 值,因此该 id 将作为要播放的歌曲代码。
$(document).ready(function(){
$("ul").on('click','li',function(){
currentTrack = this.id;
console.log(currentTrack);
streamTrack(currentTrack);
});
});
如果当前歌曲已经在播放,则按下按钮暂停它,如果没有播放(切换)。否则播放默认项目
var is_playing = false,
sound;
function player(){
if( sound ) {
if(is_playing) {
sound.pause();
is_playing = false;
} else {
sound.play();
is_playing = true;
console.log(already_played);
}
} else {
currentTrack = $("ul li").first().attr('id');
console.log(currentTrack);
streamTrack(currentTrack);
}
}
播放歌曲的方法。
var is_playing = true;
function streamTrack(myTrack){
SC.stream("/tracks/" + myTrack, function(obj){
//obj.stopAll();
obj.play();
sound = obj;
is_playing = true;
});
}
这里是在线演示:http://jsfiddle.net/danials/wZZ4D/10/
知道如何停止所有歌曲的播放并播放单击的歌曲吗?
最佳答案
你不需要为它创建一个完整的函数,只需将sound
设置为全局并暂停声音或停止声音不为空。
这样做:
var sound;
$(document).ready(function(){
$("ul").on('click','li',function(){
currentTrack = this.id;
console.log(currentTrack);
if(sound) // check if sound not null pause it
sound.pause();
streamTrack(currentTrack);
});
});
关于javascript - 如何使用 SoundCloud API 一次播放一首歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24469370/