У меня возникли проблемы с воспроизведением плейлистов Spotify, чтобы играть с бета-версией Spotify SDK. Я, несколько, следую this tutorial при воспроизведении с помощью класса Spotify Player. Однако, в отличие от примера, я хочу воспроизводить треки и плейлисты, предоставленные пользователем, поэтому я должен собирать пользовательские треки и данные плейлиста, которые я сделал с Kaaes Android Web Wrapper. Собрав необходимые данные, я пытаюсь создать проигрыватель Spotify (который, кажется, строит отлично), затем из отдельного метода попытается воспроизвести дорожку или плейлист. Интересно, что я могу получить трек, чтобы воспроизвести его только в том случае, если я вызываю его во время процесса сборки (например, в учебнике), но не вызван из другого метода, и я не могу воспроизвести плейлисты вообще. Я получаю сообщение об ошибке при попытке воспроизведения списков воспроизведения, считываемые:Воспроизведение плейлистов и дорожек с помощью Spotify SDK для Android
com.spotify.sdk.android.player.NativeSpotifyException: Failed SpPlayUri with error code 5 (An unexpected argument value was passed to a function)
Синтаксиса для воспроизведения, который я прохожу к способу воспроизведения выглядит следующим образом:
spotify:playlist:4vDeSXEwfHMYOuQaTtwlUK
, который похож на трек:
spotify:track:2TpxZ7JUBn3uw46aR7qd6V
Это может быть, конечно, неверно, но трудно найти примеры онлайн о том, как играть в плейлисты в Android SDK. Так может ли кто-нибудь, пожалуйста, показать мне, как играть в плейлисты и как воспроизводить контент на объекте Spotify Player, особенно вдали от создателя проигрывателя? Ниже я расскажу о некоторых соответствующих разделах моей работы. FWIW, я обработка аутентификации от другой деятельности, и он не дал мне слишком много проблем еще ...
private PlayerState state;
private Player player;
...
public void buildPlayer(){
//start a Spotify player
Config playerConfig = new Config(this, token, client_id);
Spotify.getPlayer(playerConfig, this, new Player.InitializationObserver() {
@Override
public void onInitialized(Player p) {
player = p;
player.addPlayerNotificationCallback(SpotifyPlayer.this);
player.setPlaybackBitrate(PlaybackBitrate.BITRATE_NORMAL);
player.getPlayerState(new PlayerStateCallback() {
@Override
public void onPlayerState(PlayerState playerState) {
state = playerState;
}
});
}
@Override
public void onError(Throwable throwable) {
Log.e(ID, "Could not initialize player: " + throwable.getMessage());
}
});
}
...
public void test(){
try {
player.play("spotify:track:2TpxZ7JUBn3uw46aR7qd6V");
//oddly enough, the track fails to play here, but not if I have this line in the builder
}catch (Exception e){
System.out.println("player failed to play");
e.printStackTrace();
}
}
Там есть больше вещей происходит в этом классе, но ничего из этого не следует вмешиваться прямо сейчас. Я с нетерпением жду ваших предложений.
Да, я на самом деле понял, что часть прошлой ночью, глядя на другие вопросы, касающиеся списков воспроизведения. Я думаю, что это было наименьшее из моих забот, хотя, поскольку меня больше беспокоит странный факт, что я не могу играть ничего вне области 'onInitialized()' часть 'buildPlayer()' – MasterChef
Я просто обновил свой ответ с помощью возможное решение проблемы onInitialized. Дайте мне знать, разрешите ли вы свою проблему. –
Спасибо! Я попробую это скоро и (если я помню) вернусь к вам. – MasterChef