Spotify Android SDK - 如何在一小时后刷新Player对象

时间:2015-05-07 13:11:51

标签: java android spotify

我正在使用Spotify Android SDK版本spotifysdk-1.0.0-beta8.aar。我有一个有效的OAuth令牌,我每小时都会成功刷新。这就是我最初获取Spotify播放器对象的方式

mPlayer = Spotify.getPlayer(playerConfig, this, new Player.InitializationObserver() {
    @Override
    public void onInitialized(Player player) {
        player.addConnectionStateCallback(JukeSpotDashboardActivity.this);
        player.addPlayerNotificationCallback(JukeSpotDashboardActivity.this);
        player.login(utils.getPreferenceValue(getString(R.string.spotify_access_token)));
    }

    @Override
    public void onError(Throwable throwable) {
        Log.e(JukeSpotDashboardActivity.class.getName(),
            "Could not initialize player: " + throwable.getMessage());
    }
});

在每小时结束时,访问令牌将被刷新并存储在共享首选项中。你们是如何建议我在同一个mPlayer对象中使用新的访问令牌,以便当前正在流式传输的哪首歌曲不会被停止并且我不需要重新创建这个Spotify播放器对象?

我知道有

mPlayer.login(accessToken); 

功能,但是当我获得新的accessToken并重新登录时它不起作用。知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

登录后,您的应用程序将能够流式传输,直到应用程序停止,网络连接丢失或用户的高级帐户结束。 (可能还有其他事件。)这意味着您不需要使用刷新的访问令牌更新Player对象以继续流式传输。

请注意,如果您使用访问令牌(例如向播放列表添加曲目)发出任何其他请求,则必须使用您用于执行请求的任何工具更新访问令牌。例如,如果你正在使用kaaes'优秀的Spotify Web API client for Android,您需要根据刷新的访问令牌获取新的SpotifyService实例。