使用 soundcloud javascript sdk 播放暂停和停止声音

Playing pausing and stopping sounds with soundcloud javascript sdk

当我点击按钮时我的声音正在播放,但当我再次点击它时它不会暂停或停止。显示 else 块的警报正在运行,所以我认为它是第二个 sc.stream。请参阅下面的代码:

var i = $('.song').attr('id');
var is_playing = false;

$('.song').click(function(){
    if(is_playing == false){
        SC.stream('/tracks/'+i).then(function(player){
            player.play();
        });
        is_playing = true;
    } else {
        SC.stream('/tracks/'+i).then(function(player){
            player.pause();
        });
        alert('This alert works when is_playing is true');
        is_playing = false;
    }
});

您当前正在创建两个单独的流(和两个单独的 player 对象)。您需要先创建播放器并使其在回调之外可用,例如将其存储在全局变量中:

var i = $('.song').attr('id');
var is_playing = false;
var player;
SC.stream('/tracks/'+i).then(function(stream){
            player = stream;
        });

$('.song').click(function(){
    if(is_playing == false){
        player.play();
        is_playing = true;
    } else {
        player.pause();
        alert('This alert works when is_playing is true');
        is_playing = false;
    }
});