TL;博士
我正在尝试播放持续时间小于
10
使用Spotify Android SDK 40秒(非常难说)。我正在使用按钮开始播放。这样做时,大部分时间没有声音。滥发按钮会导致偶尔播放声音(很少发生)。
PlayerEvent
的
kSpPlaybackNotifyTrackChanged
&
kSpPlaybackEventAudioFlush
如果没有声音,则丢失。
描述
我正在使用
Spotify's Android SDK
(
Docs
). 我正在尝试使用
playUri(...)
. 某些歌曲在呼叫后根本不会播放任何声音
playUri(…)
即使
Player.OperationCallback
的
onSuccess
已到达。在另一个更复杂的测试环境中,我发现
Player.AudioDeliveredCallback
出现此行为时甚至没有被调用。非工作轨道的一个共同点是它们都很短(持续时间小于
10
40秒(非常难说)。
我正在使用Android SDK版本
spotify-player-24-noconnect-2.20b
并在运行Android OS版本的设备上进行调试
4.4.2
&
7.0
.
我还将此列为Spotify Android SDK中的一个问题,该SDK可以找到
here
.
复制步骤
我正在使用
this
作为起点。我删除了所有与身份验证相关的代码,因为我只是自己使用Web API获取OAuth令牌。同样,我忽略了Android软件包名称&Spotify应用程序中应提供的SHA1指纹对,因为该服务似乎没有对此进行检查。播放器正在正确初始化,我可以告诉你,因为有些歌曲播放时没有任何问题。因此
ConnectionStateCallback
的
onLoggedIn()
很快就会接到电话。调试日志消息确认登录过程成功。成功登录后
playUri(…)
可以通过使用Spotify URI调用它来使用。以下实现
View.OnClickListener
的
onClick(...)
Button
利用的是
带有一个工作(按钮5)和一些非工作(按钮1-4)的Spotify URI。
public void onButtonClickedPlaySong1(View view) {
Log.d("MainActivity", "Playing short song");
mPlayer.playUri(null, "spotify:track:5vN4teJoROMQoadL4IzejG", 0, 0);
}
public void onButtonClickedPlaySong2(View view) {
Log.d("MainActivity", "Playing short song");
mPlayer.playUri(null, "spotify:track:46O6QtxuzX3iZn9hMXoeqo", 0, 0);
}
public void onButtonClickedPlaySong3(View view) {
Log.d("MainActivity", "Playing short song");
mPlayer.playUri(null, "spotify:track:770fJdqw14GUyCe2SMEgvP", 0, 0);
}
public void onButtonClickedPlaySong4(View view) {
Log.d("MainActivity", "Playing short song");
mPlayer.playUri(null, "spotify:track:4JjsoAKOZZCZuC0kiYwkTL", 0, 0);
}
public void onButtonClickedPlaySong5(View view) {
Log.d("MainActivity", "Playing long song");
mPlayer.playUri(null, "spotify:track:3CCCpjbs3uW018OkSguRFk", 0, 0);
}
实际行为
按钮1、2、3和4应开始播放短歌曲。
按钮5应开始播放一首长歌。
-
按下按钮1、2、3或4中的一个将导致无法播放声音。
-
多次按下按钮1、2、3或4中的一个很少会导致声音播放。
-
按下按钮5可始终播放声音。
预期行为
-
按下按钮1、2、3、4或5中的一个,应始终播放声音。
日志
以下日志主要显示
Player.NotificationCallback
的
onPlaybackEvent(PlayerEvent playerEvent)
电话。
按下按钮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
按下按钮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: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