2015-03-15 3 views
6

Я пытаюсь воспроизвести известный плейлист в приложении Spotify. Самое лучшее, что у меня есть - загрузить плейлист, но не играть.Как автоматически воспроизводить плейлист в приложении Spotify для Android

Две вещи, которые я пробовал. Во-первых, чтобы играть от поиска:

Intent intent = new Intent(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH); 
intent.setComponent(new ComponentName("com.spotify.music", 
    "com.spotify.music.MainActivity")); 
intent.putExtra(MediaStore.EXTRA_MEDIA_FOCUS, 
    MediaStore.Audio.Playlists.ENTRY_CONTENT_TYPE); 
intent.putExtra(MediaStore.EXTRA_MEDIA_PLAYLIST, <PLAYLIST>); 
intent.putExtra(SearchManager.QUERY, <PLAYLIST>); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(intent); 

Я попытался заменить ПЛЕЙЛИСТА с именем известного списка воспроизведения. Также попробовали такие вещи, как «4Rj0zQ0Ux47upeqVSIuBx9», «spotify: user: 11158272501: плейлист: 4Rj0zQ0Ux47upeqVSIuBx9» и т. Д. Все это делает неудачный поиск этих строк.

Вторая попытка является Посмотреть Намерение:

String uri = "https://play.spotify.com/user/11158272501/playlist/4Rj0zQ0Ux47upeqVSIuBx9"; 
Intent intent= new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(intent); 

Это загружает список воспроизведения, но не играет. Если я затем использую один из способов отправки ключа KEYCODE_MEDIA_PLAY, он просто возобновляет текущий список воспроизведения, а не этот недавно загруженный список.

Любая помощь любого (включая Spotify devs)?

BTW Я не хочу использовать Spotify SDK для реализации своего собственного Spotify Player - кажется, что это позор, когда на устройстве пользователя уже установлен совершенно хороший плеер.

+0

Любые комментарии от Spotify? Ник Рейман, ты знаешь, как это сделать? – barkside

ответ

7

Я нашел ответ от this blog. То, что мне не хватало, было URI плейлиста в качестве данных Uri в намерении. Поэтому не используйте подходящий способ Android для поиска.

Таким образом, с помощью первого метода от вопроса, вы в конечном итоге с этим:

Intent intent = new Intent(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH); 
intent.setData(Uri.parse(
    "spotify:user:11158272501:playlist:4Rj0zQ0Ux47upeqVSIuBx9")); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(intent); 

3 вещи, чтобы отметить:

  • Ури не может быть https://play.spotify ... но должен быть разделенным двоеточием.
  • аккаунт Spotify должен быть премиум, иначе плейлист открывается, но не воспроизводится.
  • это не работает, если экран выключен или отображается экран блокировки. Активность spotify должна отображаться на экране перед загрузкой и воспроизведением!

Этот последний пункт означает, что он на самом деле не используется для меня ... так что не принимаю ответа.

+0

Это действительно работало? когда я следую этим шагам, плейлист открывается, но doesent начинает играть? –

+0

ссылка не работает – vanomart

Смежные вопросы