关于Soundcloud API的JS问题暂停声音

时间:2016-10-29 14:51:19

标签: javascript jquery soundcloud

出于某种原因,我无法解决这个问题:

  

如果我点击播放,

     

如果我点击停止播放

     

然后停止

     

如果我再次单击播放声音恢复,则单击停止,它不会停止

     

如果我再次重复,它会第二次停止..

它基本上只会暂停每一次点击......必须是一个简单的修复,但我无法理解它

这里是我的代码

SC.initialize({
    client_id: "xxxxxxxxxxxxxxxxxxxxxxxxx"
});

var Sstream;
var isOn = false;

function playTrack(myTrackId){ 
    console.log('isOn',isOn);
    if (isOn !== false) {
        Sstream.pause();
        isOn = false;
    } else {
        isOn = true;
        SC.stream("/tracks/" + myTrackId).then(function(sound){
            Sstream = sound;
            Sstream.play();
            Sstream.on('state-change', function (state) {
                 if (state == 'playing') {
                     isOn = true;
                 } else  if (state == 'pause'){
                     isOn = false;
                     Sstream.sound.pause();
                 } else  if (state == 'ended'){
                     isOn = false;
                     Sstream.sound.pause();
                 }
            });
        });
    }
}

$("#playTrack").click(function(){
    playTrack('123');
});

1 个答案:

答案 0 :(得分:0)

你确定这是对的吗?

Sstream.on('state-change', function (state) {
                 if (state == 'playing') {
                     isOn = true;
                 } else  if (state == 'pause'){
                     isOn = false;
                     Sstream.sound.pause();
                 } else  if (state == 'ended'){
                     isOn = false;
                     Sstream.sound.pause();
                 }
            });

在我看来,在每次状态更改时,您实际上都会调用暂停状态,这会导致其他状态发生变化,等等...... 可能你只需要暂停一下吗?以便您对2 Sstream.sound.pause();

发表评论