如何将 Soundcloud API SDK 3.0 on(finish, handler) 方法附加到我的 Play 函数?
How do I attach the Soundcloud API SDK 3.0 on(finish, handler) method to my Play function?
我没有看到任何关于如何使用当前版本的 SoundCloud JS sdk 的 on(event, handler) 方法的答案。
关于如何将它附加到我的播放功能有什么想法吗?我希望它在当前歌曲结束时播放下一首歌曲。这是我的播放功能:
$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
我对这个特别的东西没有很好的经验 API,所以这更像是一个评论,但我没有业力留下一个。它在那些文档中说 on(event, handler) 是播放器的一个函数,所以我认为您应该能够在设置播放器时设置该事件侦听器。尝试在 $scope.player.play()
行之后添加它。
$scope.player.on('finished', $scope.StepForward);
此外,您实际上不应该在 .on()
中调用处理函数,您只需传递该函数,它会在事件发生时被调用。
我在此处发表的评论中找到了答案:
问题实际上是关于 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
});
我想我已经习惯了将其称为回调而不是处理程序。现在我知道处理程序是一种回调。
我使用以下位于函数 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' 检查是对 CORS 问题的修复,我选择了 25% 的文件,所以代码只是 ping 到列表中的下一个轨道。它在我的修复列表中...
我没有看到任何关于如何使用当前版本的 SoundCloud JS sdk 的 on(event, handler) 方法的答案。
关于如何将它附加到我的播放功能有什么想法吗?我希望它在当前歌曲结束时播放下一首歌曲。这是我的播放功能:
$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
我对这个特别的东西没有很好的经验 API,所以这更像是一个评论,但我没有业力留下一个。它在那些文档中说 on(event, handler) 是播放器的一个函数,所以我认为您应该能够在设置播放器时设置该事件侦听器。尝试在 $scope.player.play()
行之后添加它。
$scope.player.on('finished', $scope.StepForward);
此外,您实际上不应该在 .on()
中调用处理函数,您只需传递该函数,它会在事件发生时被调用。
我在此处发表的评论中找到了答案:
问题实际上是关于 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
});
我想我已经习惯了将其称为回调而不是处理程序。现在我知道处理程序是一种回调。
我使用以下位于函数 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' 检查是对 CORS 问题的修复,我选择了 25% 的文件,所以代码只是 ping 到列表中的下一个轨道。它在我的修复列表中...