Soundcloud API完成事件时如何使用
Soundcloud API How do I use on finish event
什么是Soundcloud API流完成事件的正确用法。我可以解析URL,启动流,并检测歌曲何时结束,但在第一首歌曲结束后,下一个流将添加到第一个流对象中。在我的示例中播放第一首歌曲后,单击停止会导致console.log("StopClicked:"Stream.ID)也为以前的流启动。
如何退出Track功能,让新歌开始,而不是在流上开始新歌流?
链接到以下代码的代码笔
SC.initialize({
client_id: '72e56a72d70b611ec8bcab7b2faf1015'
});
$(document).ready(function() {
var urlid = ["https://soundcloud.com/sheckylovejoy/sad-trombone", "https://soundcloud.com/xcollective/x002"];
$.get(
'https://api.soundcloud.com/resolve.json?url=' + urlid[0] + '&client_id=72e56a72d70b611ec8bcab7b2faf1015',
function (result) {
$(document).trigger('Rotation/currentTrack', result);
return result;
});
$(document).on('Track/finish', function(result){
$.get(
'https://api.soundcloud.com/resolve.json?url=' + urlid[1] + '&client_id=72e56a72d70b611ec8bcab7b2faf1015',
function (result) {
$(document).trigger('Rotation/currentTrack', result);
console.log("Song 2 " + result.id);
return result;
});
});
});
$(document).on('Rotation/currentTrack', function( e, results){
console.log("results " + results.id + " " + results.title);
track(e, results.id);
});
function track(e, trackNum){
SC.stream('/tracks/' + trackNum).then(function(sound) {
sound.play();
$('#start').click(function(e) {
e.preventDefault();
console.log("START Clicked")
sound.play();
sound.on('finish', function(){
console.log("The track finished");
$(document).trigger('Track/finish', sound);
});
});
$('#stop').click(function(e) {
e.preventDefault();
console.log("Stop clicked: " + trackNum)
sound.pause();
});
$('#skip').click(function(e){
e.preventDefault();
sound.seek(170000);
});
})
}
问题是,在SC中添加了多个流之后,我正在调用声音上的方法。我发现我可以将每个声音存储到一个数组中,然后在数组中相应的声音上调用方法。此外,在SC对象上存储声音允许在track()之外调用这些方法。
相关文章:
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 尝试使用事件键的初级JavaScript
- 使用事件侦听器更改图像
- 无法模拟在 node.js 中使用事件发射器刺激的类中的函数
- 使用事件更改数组的一个元素
- 以较短的方式使用事件
- 如何在JS中使用事件监听器
- 确定对象何时准备就绪.我应该使用事件吗
- 基于事件的IPC(使用事件的portlet间通信)
- R gvisTable 使用事件触发选项和 Javascript 代码进行预选
- 如何在不使用事件的情况下获取元素的 pageX 和 pageY
- 对象在JavaScript中引用,但在使用事件侦听器时不引用
- 使用事件获取 CKEDITOR ID 和值
- 如何在 IE-8 及更早版本中使用事件侦听器
- 如果 JS 未连接到 DOM 时,是否会使用事件侦听器删除双重创建的元素
- 如何使用事件处理程序连续循环遍历数组列表(从结束恢复到开始)
- 如何使用事件触发器和自定义属性获取元素的子元素
- 如何在全日历中使用事件日期删除事件
- 使用事件触发器如何在输入更改时将值传递给函数
- 使用“事件”的输出作为变量