AmplitudeJS setTimeout()与JSON回调

时间:2018-04-11 22:24:07

标签: javascript json audio

我正在努力了解如何在AmplitudeJS中的歌曲之间设置时间延迟。

Amplitude使用JSON文件来定义歌曲和回调。在我的例子中,它是一个本地JSON文件:

来自AmplitudeJS的例子:

var playCount = 0;
Amplitude.init({
"songs": [
{
"name": "Song Name 1",
"album": "Album Name",
"url": "/song/url.mp3",
"cover_art_url": "/cover/art/url.jpg"
},
{
"name": "Song Name 2",
"artist": "Artist Name",
"album": "Album Name",
"url": "/song/url.mp3",
"cover_art_url": "/cover/art/url.jpg"
},
{
"name": "Song Name 3",
"artist": "Artist Name",
"album": "Album Name",
"url": "/song/url.mp3",
"cover_art_url": "/cover/art/url.jpg"
}
],
//how the callback is setup in the example
"callbacks": {
'after_play': function(){
playCount++;
alert( playCount );
}
}
});

以下是有关amplitudeJS回调的文档的引用:

  

回调在某些时候,AmplitudeJS会调用各种回调,开发人员可以绑定回调。

     

|回调|描述|

     

| --------------- | ------------ |

     

| before_play |在调用play方法之前发生|

     

| after_play |在调用play方法后发生|

     

| before_stop |在调用stop方法|

之前发生      

| after_stop |在调用stop方法后发生|

     

| time_update |时间更新后发生|

     

| album_change |相册更改时发生|

     

| song_change |更改歌曲时发生|

     

要绑定到回调,您需要向回调对象添加一个函数   上面列出的其中一个回调的关键。那把钥匙将是一个   功能。调用回调时,用户传递的函数   将会运行。

我正在尝试将setTimeout()方法添加到“song_change”回调中。根据它在AmplitudeJS中的工作方式,您可以在JSON文件的末尾添加回调。像这样:

"callbacks": {
'after_play': function(){
playCount++;
alert( playCount );
}
}

我尝试过的很多事情之一是: Var = timeOut(这是设置在JSON文件的顶部,如Amplitude docs所示。

"callbacks": {
'song_change': function(){
timeOut= setTimeout (5000);
}
}

我只是想在歌曲之间设置延迟。

没有任何作用。有没有人对此问题有任何有用的评论或解决方案?我已经查看了堆栈溢出中的每个setTimeOut线程并搜索了各种文档,但我似乎无法理解如何将它们放在一起。

我是一名设计师。作为一名程序员,我不是一个很大的震动。请温柔,我不知道在哪里发帖找到好帮手。我在尝试。有关AmplitudeJS的内容很少。我找不到一个致力于它的论坛。

TIA -Rachel

1 个答案:

答案 0 :(得分:0)

在这种歌曲更改后,我该如何处理回调:

"callbacks": {
  'song_change': function(){
    Amplitude.pause();

    setTimeout (function(){
      Amplitude.play();
    }, 5000);
  }
}

当歌曲改变,暂停活动的歌曲并设置超时时,将执行此操作。 5秒钟(5000毫秒)结束时,它将播放歌曲,并继续播放下一首歌曲。这应该提供适当的延迟。希望这会有所帮助!