我没有看到如何使用当前版本的SoundCloud JS sdk的on(事件,处理程序)方法的任何答案。
关于如何将其附加到我的播放功能的任何想法?我想让它在当前歌曲结束时播放下一首歌曲。这是我的游戏功能:
$scope.play = function(id) {
soundcloud.stream(id).then(function(player) {
$scope.player = player;
$scope.player.play();
});
$scope.isPlaying = id;
};
我已经有一个我可以调用的stepForward函数,例如,on(finish, $scope.StepForward());
但是没有迹象表明我会把它放在文档中:https://developers.soundcloud.com/docs/api/sdks#streaming
答案 0 :(得分:1)
我对这个特定的API没有很好的经验,所以这更像是一个评论,但我没有留下业力的业力。它在那些文档中说on(event,handler)是播放器的一个函数,所以我认为你应该能够在设置播放器时设置该事件监听器。尝试在File Promoter List - ARCVAL
行之后添加此内容。
if (($('select[name="catDes"]').val() == "Menu Values") || ($('select[name="catDes"]').val() == "File Promoter List")){
$('.toHide').css("display", "none");
$('.toShow').css("display", "inline");
} else {
$('.toHide').css("display", "block");
$('.toShow').css("display", "none");
}
另外,你不应该在$scope.player.play()
中实际调用处理函数,只需传递函数即可在事件发生时调用它。
答案 1 :(得分:0)
我在某人发布的评论中找到了答案:here
问题实际上是关于SDK 2.0,但评论是我对SDK 3.0的问题的答案。
$scope.player.on('finish' function() {
$scope.stepForward();
$scope.$apply; // in my case, this updates a variable, $scope.isPlaying, to the DOM
});
我想我习惯这被称为回调而不是处理程序。现在我知道处理程序是一种回调。
答案 2 :(得分:-1)
我使用以下代码,它位于函数loadAndUpdate:
中player.addEventListener('ended', function () {
var nextCount = 1;
nextTrack(nextCount);
function nextTrack(nextCount) {
QueueControl('forward', function () {
if (typeof playList[playTrack] == 'undefined') {
writeHistory('player ended ' + nextCount + ': playList[playTrack] == "undefined"');
nextTrack(nextCount + 1);
} else {
loadAndUpdate(playList[playTrack], loader, audioSource, player, cpUpdate);
}
});
}
});
' undefined' check是对我选择的25%文件的CORS问题的修复,所以代码只是ping到列表中的下一个轨道。它在我的修复列表中......