使用Kaaels Spotify网络API无法获得播放列表的曲目

时间:2018-10-14 11:08:12

标签: java android api spotify

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

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

Accessing list of playlists from Pager object

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");
            }
    });

它会亮起红色的Callback(当我调用新的Callback>()时),并显示:无法解析符号“ Callback” 如果我alt + enter点击它,它说:将库'retrofit-2.4.0.retrofit-2.4.0'添加到classpath 如果执行此操作,则它会突出显示所有Callback>,并显示错误:

然后我再次alt + enter并说:类'从Callback派生的匿名类'必须声明为抽象,或在'Callback'中实现抽象方法'onResponse(Call,Response)

然后我再次按住Alt键并单击,然后选择:实现方法onResponse()和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变成红色并显示:无法解析符号“ items” 我在网上找不到有关此内容的任何信息。似乎我无法使用新的API方法适应发现的旧代码示例。

谢谢

1 个答案:

答案 0 :(得分:1)

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

如果添加以下导入并删除其他改造/ 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;

如果这不起作用,请从您的类路径/项目中删除Retrofit 2库,然后重试,因为此包装程序仍使用Retrofit 1.9.0。