Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用SoundCloud API一次播放一首歌曲_Javascript_Jquery_Media Player_Soundcloud - Fatal编程技术网

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

Javascript 如何使用SoundCloud API一次播放一首歌曲,javascript,jquery,media-player,soundcloud,Javascript,Jquery,Media Player,Soundcloud,我正在用SoundCloud制作一个音乐播放器。它有一个“播放/暂停”按钮和播放列表。默认情况下,“播放/暂停”按钮播放播放列表中的第一首歌曲。但如果播放列表中的某首歌曲,则它将是当前歌曲,“播放/暂停”按钮将基于此工作。我的问题是,当我选择一首歌时,它会开始播放,但上一首歌不会停止。除非我在点击另一首歌曲之前按下“播放/暂停”按钮 代码如下: var currentTrack = $("ul li").first().attr('id'); 查找所单击项目的id val,以便此id将成为要播

我正在用SoundCloud制作一个音乐播放器。它有一个“播放/暂停”按钮和播放列表。默认情况下,“播放/暂停”按钮播放播放列表中的第一首歌曲。但如果播放列表中的某首歌曲,则它将是当前歌曲,“播放/暂停”按钮将基于此工作。我的问题是,当我选择一首歌时,它会开始播放,但上一首歌不会停止。除非我在点击另一首歌曲之前按下“播放/暂停”按钮

代码如下:

var currentTrack = $("ul li").first().attr('id');
查找所单击项目的id val,以便此id将成为要播放的歌曲代码

如果当前歌曲一直在播放,按按钮暂停播放,如果不播放(切换)。否则播放默认项

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 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);
        });

});

哇,谢谢你,伙计。我尝试了很多行代码来修复它,但都做不到。谢谢
var is_playing = true;
function streamTrack(myTrack){
    SC.stream("/tracks/" + myTrack, function(obj){
            //obj.stopAll();

            obj.play();
            sound = obj;
            is_playing = true;
    });
}
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);
        });

});