首页 > 解决方案 > 无法使用 kaaes Spotify web api 获取播放列表的曲目

问题描述

我是一个非常菜鸟用户,我正在尝试在我的 Android 应用程序中播放来自 Spotify 的一些曲目。目前我正在使用 kaaes API: https ://github.com/kaaes/spotify-web-api-android

我正在努力从一个非常具体的播放列表和一个非常具体的用户 ID 中检索曲目。看来我做不到,我发现的唯一例子是旧的,对我没有帮助。这是我尝试过的:

从 Pager 对象访问播放列表列表

SpotifyApi api = new SpotifyApi();
SpotifyService spotify = api.getService();

spotify.getPlaylistTracks("USERID","PLAYLISTID", new Callback<Pager<PlaylistTrack>>() {
        @Override
            public void success(Pager<PlaylistTrack> playlistTrackPager, Response response) {
            Log.e("TEST", "GOT the tracks in playlist");
            List<PlaylistTrack> items = playlistTrackPager.items;
            for( PlaylistTrack pt : items){
                Log.e("TEST", pt.track.name + " - " + pt.track.id);
            }
        }
        @Override
            public void failure(RetrofitError error) {
                Log.e("TEST", "Could not get playlist tracks");
            }
    });

它点亮红色回调(当我打电话时new Callback<Pager<PlaylistTrack>>()),它说:

无法解析符号“回调”

如果我 alt+enter 点击它,它会说:

将库“retrofit-2.4.0.retrofit-2.4.0”添加到类路径

如果我这样做,那么它会在 all 下划线Callback<Pager<PlaylistTrack>>,但有错误:

然后我 alt+enter 再次它说:

类“从回调派生的匿名类”必须声明为抽象或在“回调”中实现抽象方法“onResponse(Call, Response)”

然后我 alt+enter 再次单击并选择:Implements methods onResponse() and onFailure() 并使用新方法调整旧代码,因此它将是:

spotify.getPlaylistTracks("USERID","PLAYLISTID", new Callback<Pager<PlaylistTrack>>() {
            @Override
            public void onResponse(Call<Pager<PlaylistTrack>> playlistTrackPager, Response<Pager<PlaylistTrack>> response) {
                Log.e("TEST", "GOT the tracks in playlist");
                List<PlaylistTrack> items = playlistTrackPager.items;
                for( PlaylistTrack pt : items){
                    Log.e("TEST", pt.track.name + " - " + pt.track.id);
                }
            }

            @Override
            public void onFailure(Call<Pager<PlaylistTrack>> call, Throwable t) {
                Log.e("TEST", "Could not get playlist tracks");
            }
        });

可现在,.items红着眼说:

无法解析符号“项目”

我在网上找不到任何关于此的内容.. 似乎我无法将找到的旧代码示例与新的 API 方法相匹配。

谢谢

标签: javaandroidapispotify

解决方案


您的第一个代码被剪断在我的测试项目中没有显示任何错误。我想重叠导入或其他库存在问题。

如果您添加以下导入并删除其他改造/ kaaes 导入,请检查它是否有效:

import kaaes.spotify.webapi.android.SpotifyApi;
import kaaes.spotify.webapi.android.SpotifyService;
import kaaes.spotify.webapi.android.models.Pager;
import kaaes.spotify.webapi.android.models.PlaylistTrack;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;

如果这不起作用,请从您的类路径/项目中删除改造 2 库并重试,因为此包装器仍使用改造 1.9.0。


推荐阅读