【问题标题】:Is there a way to get track IDs of the tracks in a Spotify playlist using the Spotify JAVA API?有没有办法使用 Spotify JAVA API 获取 Spotify 播放列表中曲目的曲目 ID?
【发布时间】:2020-05-11 18:50:06
【问题描述】:

我一直在为 Spotify API 使用 Java 包装器。我已成功检索所需的播放列表,但无法获取播放列表中曲目的曲目 ID。

这是我用来获取播放列表项的代码。

playlistID = "37i9dQZF1DWXLeA8Omikj7";


        getPlaylistsItemsRequest = spotifyApi.getPlaylistsItems(playlistID).build();



        Paging<PlaylistTrack> playlistTrackPaging = getPlaylistsItems_Sync();
        PlaylistTrack[] items = playlistTrackPaging.getItems();

        System.out.println(items.length);
        for (int i = 0; i < items.length; i++) {
            System.out.println(items[i].getTrack().toString());
        }

上面的代码以这种格式给出输出:

com.wrapper.spotify.model_objects.specification.Track@6c40365c

不幸的是,最后的字母数字不是曲目 ID。

PlaylistTrack 对象似乎没有任何方法来获取曲目 ID。有谁知道我如何获得曲目ID? 已经为此苦苦挣扎了一段时间。谢谢!

【问题讨论】:

  • 请始终指定库的版本,以便人们可以轻松地帮助您:)
  • 另外,请参阅CONTRIBUTING.md#your-questions,并在此 StackOverflow 上使用 spotify-web-api-java 标记您有关此 API 包装器的问题。

标签: java wrapper spotify


【解决方案1】:

是的

当然可以! :)

由于v6.0.0-RC1 的spotify-web-api-java 的PlaylistTracks 由您的请求返回,现在包含IPlaylistItem 而不是简单的Track,因为与the new podcasts API 相关的更改导致端点返回类型取决于请求的上下文。

当前的解决方案是将项目转换为预期的类型。在您的示例中,for-loop 中的 println 应如下所示:

System.out.println(((Track) items[i].getTrack()).getId());

根据传入的拉取请求,这可能会在未来得到改进:请参阅the discussion in issue #201。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-07
    • 2015-09-08
    • 2012-12-20
    • 2016-12-26
    • 2019-03-19
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    相关资源
    最近更新 更多