有没有办法使用适用于Android的Spotify SDK来设置曲目的上下文?

时间:2019-07-05 13:13:11

标签: java android spotify

我正在开发使用Spotify API的应用程序。它必须开始特定的轨道。我可以做到的。

但是在曲目结束后,播放会停止。我希望Spotify然后播放专辑的以下曲目。有办法吗?

1 个答案:

答案 0 :(得分:0)

我还没弄乱玩家的状态(只是抓住了封面uri),但是这就是我要解决的方法。

我将首先订阅播放器状态,以查看播放器发生了什么。如果暂停,那么我将播放您正在谈论或想要谈论的专辑。这是一个小示例,可能会有所帮助。

SpotifyAppRemote mSpotifyAppRemote; // The app remote

/* For mAppRemoteSet the connection parameters */
    connectionParams = new ConnectionParams.Builder(CLIENT_ID)
            .setRedirectUri(REDIRECT_URI)
            .showAuthView(true)
            .build();

/* Connect to SpotifyAppRemote */
SpotifyAppRemote.connect(this, connectionParams, new Connector.ConnectionListener() {
    @Override
    public void onConnected(SpotifyAppRemote spotifyAppRemote) {
            mSpotifyAppRemote = spotifyAppRemote;
            Log.d(TAG, "App remote Connected!");
            connected();

    @Override
    public void onFailure(Throwable throwable) {
           Log.e(TAG, throwable.getMessage(), throwable);
          // Hanfle errors here
        }
    });
}

public connected() {
    /* Subscribe to the PlayerState */
    mSpotifyAppRemote.getPlayerApi()
            .subscribeToPlayerState()
            .setEventCallback(playerState -> {
    if (playerState.isPaused) {
            mSpotifyAppRemote.getPlayerApi().play("ALBUM URI");
           }
        });
}

其中“ CLIENT_ID”和“ REDIRECT_URI”特定于您已经在信息中心中从代码中定义的内容。

“ ALBUM URI”是您要播放提到的第一首歌曲后要播放的专辑的ID。

您还可以播放特定的曲目,然后将专辑的偏移量设置为开头,如果特定曲目位于专辑的中间,结尾等位置,则重新开始整个专辑。

我仍在学习sdk及其提供的许多选项,因此如果这完全无关或无用,我会提前道歉。