AmplitudeJS setTimeout()与JSON回调的问题

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (151)

我试图理解如何在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);
}
}

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

什么都行不通。有没有人对此问题有任何有用的解决方案?

提问于
用户回答回答于

在歌曲改变之后做一个回调:

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

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

这将做的是当歌曲改变时,暂停活动歌曲并设置超时。当5秒(5000毫秒)结束时,它将播放将继续播放下一首歌曲的歌曲。这应该提供适当的延迟。希望这可以帮助!

扫码关注云+社区

领取腾讯云代金券