【问题标题】:How play a track from a album on Spotify so that the next track of the album will play afterwards using Spotify App Remote SDK for Android?如何在 Spotify 上播放专辑中的曲目,以便之后使用 Spotify App Remote SDK for Android 播放专辑的下一首曲目?
【发布时间】:2020-11-22 22:47:20
【问题描述】:

示例:我有一张 Spotify 专辑,我想播放它的第 15 首曲目。播放完第 15 首曲目后,我希望 Spotify 播放第 16 首曲目,然后播放第 17 首曲目,依此类推。

我正在使用适用于 Android 的 Spotify App Remote SDK。我能想到三种可能的解决方案。

解决方案

  1. 通过 Spotify Web API 获取专辑的以下曲目并将它们添加到队列中。 这对我不起作用,因为我不希望 Spotify 在用户保留队列时开始播放另一个播放列表或专辑。

  2. 使用后台服务,在当前曲目播放完毕后自动开始播放下一首曲目。 但是在这里,用户可能会遇到曲目之间的明显延迟。

  3. 启动专辑并跳过多次。这个选项理论上可行。不过看起来不是很优雅。

有没有更好的方法来实现这一点?例如,以某种方式向轨道添加上下文? 感谢您的帮助!

【问题讨论】:

  • 为什么解决方案 1 有问题?播放当前专辑外的歌曲时不能删除队列吗?
  • 如果应用之前被用户关闭,则不会...
  • 应用被杀时删除队列?选项 1 似乎真的是这里的解决方案
  • 在这种情况下,当应用程序被终止时删除队列不起作用,因为专辑应该继续播放,即使应用程序不再打开也是如此。但是当用户开始另一个专辑/播放列表时,队列应该不再存在。

标签: android spotify


【解决方案1】:

有一个很好的示例代码Start/Resume a User's Playback你可以如何实现它。

{
  "context_uri": "spotify:album:5ht7ItJgpBH7W6vJ5BqpPr",
  "offset": {
    "position": 5
  },
  "position_ms": 0
}

context_uri 设置为您的专辑ID,将offset 设置为您的曲目编号,将position_ms 设置为您的位置(以毫秒为单位)。

【讨论】:

    【解决方案2】:

    用方法:

    mSpotifyAppRemote.getPlayerApi().skipToIndex(java.lang.String uri, int index)
    

    您必须将 uri 与上下文一起放置,例如专辑:

    “spotify:专辑:5ht7ItJgpBH7W6vJ5BqpPr”

    并且在参数索引中你需要把曲目在专辑中的位置。

    您可以在此处的 SpotifyAppRemote 的 javadocs 中找到更多方法: https://spotify.github.io/android-sdk/app-remote-lib/docs/

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 2016-08-01
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      • 2018-07-10
      相关资源
      最近更新 更多