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

JS issue on Soundcloud API pausing sound

本文关键字:JS 问题 声音 暂停 Soundcloud API 关于      更新时间:2023-09-26

由于某些原因我无法解决这个问题:

如果我点击播放

如果我点击停止,它会播放

然后停止

如果我再次点击播放声音恢复然后我点击停止,它不停止

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

它基本上每隔一次点击就会暂停…这应该很容易解决,但我无法理解

这里是我的代码

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

你确定这是对的吗?

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