在同一个Android播放器服务中播放本地歌曲并发现歌曲

时间:2016-11-12 21:40:09

标签: android audio android-mediaplayer spotify android-music-player

我有一个可以播放本地歌曲的Android服务(我跟着这个tuto:https://code.tutsplus.com/tutorials/create-a-music-player-on-android-song-playback--mobile-22778) 我可以使用MediaController控制播放器(使用此tuto制作: https://code.tutsplus.com/tutorials/create-a-music-player-on-android-user-controls--mobile-22787

我希望能够在不更改控制器的情况下播放本地歌曲和Spotify歌曲,如果可能的话,使用相同的服务。目的是能够有一个等待列表,可以包含本地轨道或spotify轨道,服务应该能够读取它们。

我有Spotify SDK,我能够在他的SDK中通过播放器来识别提供的歌曲,但有没有办法获得一首歌的流媒体网址并与本地播放器一起播放使用:

String url = "http://........"; // Spotify URL here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(url);
mediaPlayer.prepare(); 
mediaPlayer.start();

即使控制器是Spotify歌曲还是本地歌曲,控制器也会同步? 如果我无法获得流媒体链接,有没有办法将Android MusicController与Spotify MusicPlayer一起使用?

注意: 使用该应用程序的每个用户都与其Spotify帐户相关联。 我使用fragement所以Controller是创建一次然后它是相同的 我可以随处访问该服务

1 个答案:

答案 0 :(得分:1)

如果您想从Spotify流式传输,您将不得不使用他们的SDK和他们的播放器,您将无法将其用于本地歌曲,因此您需要同时使用它们,但是您可以实现一个服务将同时拥有两个玩家MediaPlayerSpotifyPlayer并控制流程,但我的建议是你在不同的服务中制作它们。 MediaPlayer Spotify稳定而exclude仍处于测试阶段且很有可能会经常更改