当前位置: 首页 > 知识库问答 >
问题:

无法使用kaaes Spotify web api获取播放列表的曲目

朱高丽
2023-03-14

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

我正在努力从一个非常特定的播放列表和一个非常特定的用户ID中检索曲目。似乎我做不到,我找到的例子都是老的,对我没有帮助。以下是我尝试过的:

从寻呼机对象访问播放列表

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时)

无法解析符号“回调”

如果我按alt enter键,点击它就会显示:

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

如果我这样做,那么它强调所有回调

然后我再次输入alt,它会显示:

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

然后我再次按住alt enter键并单击,然后选择:实现方法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”

我在网上找不到关于这个的任何信息。。我似乎无法用新的API方法来匹配我找到的旧代码示例。

非常感谢。


共有1个答案

濮阳钟展
2023-03-14

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

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

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

 类似资料:
  • 所以我用javafx制作了一个mp3播放器,它有一个,在这里我拖放歌曲,然后选择一首歌曲并按play播放,你就明白了。问题是,用我当前的代码,我不能播放两首以上歌曲的序列:/(播放选定的歌曲,播放它旁边的歌曲,然后停止)。代码如下:

  • 问题内容: 我正在尝试使用ScriptingBridge阅读iTunes当前正在播放的曲目。我在这里找到了其他两个线程,但似乎没有一个对我有用(macOS Mojave和iTunes 12.9.4)。 我使用以下命令创建了iTunes.h文件: 我正在创建脚本桥的实例,如下所示: 该代码可以正常编译。运行代码时,得到以下输出: currentTrack为零,但iTunes正在播放歌曲。我在这里想念

  • 是否有其他人在创建播放列表后不能访问播放列表id?

  • 我正在学习如何为某些曲目创建媒体播放器的教程...每首歌都按我的要求播放然后停止...我想让整个播放列表播放...那是为了在前一个赛道结束后,下一个赛道自动开始... 多谢...

  • 我正在尝试在iOS设备上播放.pls音频流,但它似乎不工作,这是我当前正在做的;

  • 编辑:让我们试着澄清这一切。 我正在编写一个python脚本,希望它告诉我Spotify当前正在播放的歌曲。 我试着寻找可以帮助我的库,但没有找到任何仍在维护和工作的库。我还浏览了Spotify的web API,但它没有提供任何获取这些信息的方法。 我找到的唯一潜在解决方案是抓住我的Spotify(桌面应用)窗口的标题。但是到目前为止我还没有做到。 所以基本上,我问的是是否有人知道: > 如何应用