Android Spotify';s安卓SDK可以';不要可靠地播放短时间的歌曲 TL;博士

Android Spotify';s安卓SDK可以';不要可靠地播放短时间的歌曲 TL;博士,android,spotify,Android,Spotify,我正在尝试使用Spotify Android SDK播放持续时间小于10 40秒(非常难说)的歌曲。我正在使用一个按钮开始播放。这样做时,大部分时间没有声音。滥发按钮会导致偶尔播放声音(很少发生)PlayerEvent的kSpPlaybackNotifyTrackChanged和kSpPlaybackEventAudioFlush 描述 我正在使用()。我正在尝试使用playUri(…)播放歌曲。某些歌曲在调用playUri(…)后根本不会播放任何声音,即使是通过播放器。操作回调成功。在另一个更

我正在尝试使用Spotify Android SDK播放持续时间小于10 40秒(非常难说)的歌曲。我正在使用一个按钮开始播放。这样做时,大部分时间没有声音。滥发按钮会导致偶尔播放声音(很少发生)<如果没有声音,则缺少code>PlayerEvent的
kSpPlaybackNotifyTrackChanged
kSpPlaybackEventAudioFlush

描述 我正在使用()。我正在尝试使用
playUri(…)
播放歌曲。某些歌曲在调用
playUri(…)
后根本不会播放任何声音,即使是通过
播放器。操作回调
成功
。在另一个更复杂的测试环境中,我发现当出现这种行为时,
Player.AudioDeliveredCallback
甚至没有被调用。非工作轨道的一个共同点是它们很短(持续时间少于10-40秒(非常难说)。 我正在使用Android SDK版本
spotify-player-24-noconnect-2.20b
,并在运行Android操作系统版本
4.4.2
7.0
的设备上进行调试

我还将此列为Spotify Android SDK中的一个问题,该SDK可以找到

复制步骤 我用它作为出发点。我删除了所有与身份验证相关的代码,因为我只是自己使用Web API获取OAuth令牌。此外,我忽略了Spotify应用程序中应该提供的Android软件包名称和SHA1指纹对,因为这似乎没有得到服务的检查。播放器正在正确初始化,我可以说,因为有些歌曲播放时没有任何问题。因此,
ConnectionStateCallback
onLoggedIn()
在短时间后被调用。调试日志消息确认登录过程成功。成功登录后,
playUri(…)
可以使用Spotify URI调用它。以下
View.OnClickListener
onClick(…)
方法的实现用于五种不同的
按钮
,它们利用
playUri(…)
和一个工作(按钮5)和一些非工作(按钮1-4)的Spotify URI

public void onButtonClickedPlaySong1(视图){
Log.d(“主要活动”,“播放短歌曲”);
playUri(null,“spotify:track:5vN4teJoROMQoadL4IzejG”,0,0);
}
public void onButtonClickedPlaySong2(视图){
Log.d(“主要活动”,“播放短歌曲”);
playUri(null,“spotify:track:46O6QtxuzX3iZn9hMXoeqo”,0,0);
}
public void onButtonClickedPlaySong3(视图){
Log.d(“主要活动”,“播放短歌曲”);
playUri(null,“spotify:track:770fJdqw14GUyCe2SMEgvP”,0,0);
}
public void on ButtonClickedplaysong4(视图){
Log.d(“主要活动”,“播放短歌曲”);
playUri(null,“spotify:track:4jjsoakozzczuckiwktl”,0,0);
}
public void on ButtonClickedplaysong5(视图){
Log.d(“主要活动”,“播放长歌”);
playUri(null,“spotify:track:3ccpcpjbs3uw018oksgurfk”,0,0);
}
实际行为 按钮1、2、3和4应开始播放短歌曲。 按钮5应开始播放一首长歌

  • 按下按钮1、2、3或4中的一个将导致无法播放声音
  • 多次按下按钮1、2、3或4中的一个很少会导致声音播放
  • 按下按钮5可始终播放声音
预期行为
  • 按下按钮1、2、3、4或5中的一个应始终播放声音
日志 下面的日志主要显示Player.NotificationCallback
onPlaybackEvent(playerent-playerent)
调用

按下按钮5:

02-24 13:19:15.500 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playing long song
02-24 13:19:15.516 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyPlay
02-24 13:19:15.574 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyMetadataChanged
02-24 13:19:15.692 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyMetadataChanged
02-24 13:19:15.692 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyMetadataChanged
02-24 13:19:15.692 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyContextChanged
02-24 13:19:15.791 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyTrackChanged
02-24 13:19:15.791 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackEventAudioFlush
02-24 13:19:15.500 5766-5766/D/main活动:播放长歌
02-24 13:19:15.516 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyPlay
02-24 13:19:15.574 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyMetadataChanged
02-24 13:19:15.692 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyMetadataChanged
02-24 13:19:15.692 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyMetadataChanged
02-24 13:19:15.692 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyContextChanged
02-24 13:19:15.791 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyTrackChanged
02-24 13:19:15.791 5766-5766/D/main活动:接收到播放事件:kspplaybackevent音频刷新
按下按钮1、2、3或4:

02-24 13:20:04.286 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playing short song
02-24 13:20:04.307 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyPlay
02-24 13:20:04.357 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyMetadataChanged
02-24 13:20:04.463 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyMetadataChanged
02-24 13:20:04.463 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyMetadataChanged
02-24 13:20:04.463 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyContextChanged
02-24 13:20:04.286 5766-5766/D/main活动:播放短歌曲
02-24 13:20:04.307 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyPlay
02-24 13:20:04.357 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyMetadataChanged
02-24 13:20:04.463 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyMetadataChanged
02-24 13:20:04.463 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyMetadataChanged
02-24 13:20:04.463 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyContextChanged
按下按钮1、2、3或4之前:

02-24 13:20:06.020 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playing short song
02-24 13:20:06.035 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyPlay
02-24 13:20:06.088 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyMetadataChanged
02-24 13:20:06.179 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyMetadataChanged
02-24 13:20:06.179 5766-5766/<YOUR_PACKAGE> D/MainActivity: Playback event received: kSpPlaybackNotifyMetadataChanged
02-24 13:20:06.020 5766-5766/D/main活动:播放短歌曲
02-24 13:20:06.035 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyPlay
02-24 13:20:06.088 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyMetadataChanged
02-24 13:20:06.179 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyMetadataChanged
02-24 13:20:06.179 5766-5766/D/main活动:接收到播放事件:kSpPlaybackNotifyMetadataChanged

我实际上找到了解决问题的方法
playUri(…)
的最后一个参数是