Soundcloud Javascript SDK声音未暂停

Soundcloud Javascript SDK声音未暂停,javascript,soundcloud,Javascript,Soundcloud,使用Soundcloud JavaScript SDK,我成功地抓取了我的曲目并播放它们。我的目标是通过单击一个按钮(如播放/暂停切换)来允许播放和暂停。但是,我的问题是,当我单击.SCbtn元素时,歌曲会播放,并且不会停止。我的条件句似乎是正确的,因为我可以在控制台中看到true和false。不太清楚为什么SC.sound.pause();它不起作用了 var is_playing = false; var trackCont = function(trackNum){ SC.stream("

使用Soundcloud JavaScript SDK,我成功地抓取了我的曲目并播放它们。我的目标是通过单击一个按钮(如播放/暂停切换)来允许播放和暂停。但是,我的问题是,当我单击.SCbtn元素时,歌曲会播放,并且不会停止。我的条件句似乎是正确的,因为我可以在控制台中看到true和false。不太清楚为什么SC.sound.pause();它不起作用了

var is_playing = false;
var trackCont = function(trackNum){
SC.stream("/tracks/" + trackNum).then(function(sound){
    SC.sound = sound;
    if (is_playing === false){
        SC.sound.play();
        is_playing = true;
        console.log(is_playing);
    }else if(is_playing === true){
        SC.sound.pause();
        is_playing = false;
        console.log(is_playing);
    }
    });
}
$('body').on("click", ".SCbtn", function(){
    var theTrack = $(this).attr('id');
    trackCont(theTrack);
});
更新


我认为你把事情复杂化了。下面是一个简单的例子:

HTML:

您应该使用Soundcloud提供的toggle()方法,以实现最简单的实现。请看这里:

下面类似的内容应该可以做到这一点:

var sc = SC.Widget(iframe);

$('body').on("click", ".SCbtn", function(){
    sc.toggle();
});

谢谢,日航!我喜欢你的答案,但它只适用于一个轨道。我的目标是能够播放和暂停我所有的十首曲目。这就是为什么我上面的代码将一个曲目编号传递到trackCont函数以动态更新流。我在上面添加了一个链接,链接到一些代码,这些代码已经完成了一半。我可以播放曲目,但不能暂停。还有一种奇怪的行为,你必须在每首曲目播放前点击两次。谢谢Elliott!查看您的链接,这是专门针对小部件的。我试图从头开始构建一些东西,这样我就可以更好地控制我的播放器的外观。@RobM这正是小部件的功能所在。基本上,您要做的是创建一个iframe来加载声音。我的设置为
display:none
,因此它不显示任何内容。然后你可以随心所欲地构建你的播放器,并附加任何你想要的方法-.toggle().play().pause()。seek()等。。。您将声音加载到soundcloud处理和播放的不可见iframe中,但所有控件都在您的自定义playerAh中!这很有趣。我完全没有这种联系,但这是有道理的。今晚我会试试你的方法。感谢您提供更多详细信息。我能够成功地在iframe小部件上启动play/pause和prev/next方法。但它只适用于整个播放列表,而不是每首歌。你可以在上看到我的例子。理想情况下,我希望播放和暂停每首曲目,但我在文档中找不到任何内容。@RobM如果您将播放列表放入小部件中,这就是您所能做的一切。为了播放和暂停单个曲目,同时让它们连续播放,您需要使用soundcloud还提供的SC.Widget.Events方法。您可以使用FINISH事件查看一首曲目何时完成加载到下一首曲目,类似于播放列表的工作方式。这也将允许您播放和暂停单个曲目,因为您将拥有完全的控制权。
SC.initialize({
  client_id: 'XXXX'
});

var myPlayer;
var isPaused = false;
SC.stream('tracks/43377447').then(function(player){
            player.play()
            myPlayer = player;
        });

document.querySelector('button').addEventListener('click', function() {
    if (isPaused) {
        myPlayer.play()
        isPaused = false;
    } else {
        myPlayer.pause()
        isPaused = true;
    }
});
var sc = SC.Widget(iframe);

$('body').on("click", ".SCbtn", function(){
    sc.toggle();
});