Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SoundCloud Javascript SDK 2.0-whileplaying事件_Javascript_Soundcloud - Fatal编程技术网

SoundCloud Javascript SDK 2.0-whileplaying事件

SoundCloud Javascript SDK 2.0-whileplaying事件,javascript,soundcloud,Javascript,Soundcloud,我正在使用SoundCloudJavaScript SDK。最近,2.0 SDK发布了,似乎不再有“whileplay”事件。在下面的代码中,“whileplaying”处理程序永远不会执行 SC.stream(sound_id, function(sound) { sound.play({ whileplaying: function() { console.log('whileplaying'); } }) ); 我做错什么了吗?如果这是从SDK中删除的,

我正在使用SoundCloudJavaScript SDK。最近,2.0 SDK发布了,似乎不再有“whileplay”事件。在下面的代码中,“whileplaying”处理程序永远不会执行

SC.stream(sound_id, function(sound) {         
  sound.play({
    whileplaying: function() { console.log('whileplaying'); }
  })
);

我做错什么了吗?如果这是从SDK中删除的,有解决办法吗?

我正在为我的站点准备一个Soundcloud音频播放器,这证明是一个令人头痛的问题:Soundcloud尚未发布js SDK v2的任何文档,并且它不再使用soundManager,因此流式音频对象完全不同

在文档可用于澄清情况之前,您可以使用setInterval或requestAnimationFrame polyfill调用音频对象的方法(),并将其存储在全局变量中,以便您可以从其他函数访问它:

使用setInterval 然后使用暂停或停止按钮的任何处理程序:

scTrack.pause();
clearInterval(updater);
使用requestAnimationFrame (此处提供Polyfill:)

对于暂停/停止处理程序:

scTrack.pause();
cancelAnimationFrame(updater);
// This hasn't always cleared the animation request for me so I also set the loop variable to undefined:
updater = undefined;

我相信有更好的方法可以做到这一点,但它目前仍然有效——希望即将发布的文档能够将其清除。

通过查看未混淆的JS文件(API本身和soundmanager文件),您可以找到您要查找的事件

例如:

    sound._player.on("stateChange", function(state) {
        console.log(state);
    });
或:

我已经快速测试了HTML5和Flash曲目

scTrack.pause();
cancelAnimationFrame(updater);
// This hasn't always cleared the animation request for me so I also set the loop variable to undefined:
updater = undefined;
    sound._player.on("stateChange", function(state) {
        console.log(state);
    });
    sound._player.on("positionChange", function(position) {
        console.log(position);
    });