如何使用SoundCloud API播放一首歌曲

时间:2014-06-28 17:38:44

标签: javascript jquery media-player soundcloud

我正在通过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/

任何想法,如何停止播放所有歌曲并播放该歌曲?

1 个答案:

答案 0 :(得分:0)

你不需要为它做一个完整的功能只需使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);
        });

});

UPDATED FIDDLE