无法使用 kaaes Spotify web api 获取播放列表的曲目
Posted
技术标签:
【中文标题】无法使用 kaaes Spotify web api 获取播放列表的曲目【英文标题】:Can't get playlist's tracks with kaaes Spotify web api 【发布时间】:2019-03-19 00:18:04 【问题描述】:我是一个非常菜鸟用户,我正在尝试在我的 android 应用中播放一些来自 Spotify 的曲目。目前我正在使用 kaaes API: https://github.com/kaaes/spotify-web-api-android
我正在努力从一个非常具体的播放列表和一个非常具体的用户 ID 中检索曲目。看来我做不到,我发现的唯一例子是旧的,对我没有帮助。这是我尝试过的:
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");
);
它点亮红色回调(当我打电话给new Callback<Pager<PlaylistTrack>>()
时)它说:
无法解析符号“回调”
如果我 alt+enter 点击它,它会说:
将库“retrofit-2.4.0.retrofit-2.4.0”添加到类路径
如果我这样做,那么它会在所有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 方法相匹配。
谢谢
【问题讨论】:
【参考方案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;
如果这不起作用,请从您的类路径/项目中删除改造 2 库并重试,因为此包装器仍使用改造 1.9.0。
【讨论】:
谢谢 tomaculum,我错过了 Retrofit 导入,但 Android Studio 在我 cntl+v 后立即将其删除。我按照 Retrofit 页面上的说明进行操作 square.github.io/retrofit:下载了 .jar 文件-> new -> new module -> import jar aar package - 在依赖项中添加改造: implementation 'com.squareup.retrofit2:retrofit:2.4.0' 然后,如果我使用问题的第一个代码 sn-p,并且我编写了改造导入,它不会删除它们,但它们是灰色的(改造以红色突出显示)并且 AS 说: 无法解析符号“改造”我该怎么办?我需要下载以前版本的 Retrofit 吗?谢谢 您是否在项目的其他任何地方使用改造?如果不是,只需删除 build.gradle 文件中的 retrofit2 依赖项和/或删除下载的 jar 文件并重试。当您设置 kaees 包装器依赖项时,所需的 1.9 改造版本将自动添加(在后台某处)到您的项目中。以上是关于无法使用 kaaes Spotify web api 获取播放列表的曲目的主要内容,如果未能解决你的问题,请参考以下文章