我正在使用Android Deezer SDK 0.10.16 播放曲目,但我有一个奇怪的错误。 如果我在TrackPlayer上添加了playerStateChangeListener并对事件PlayerState.PLAYING进行了一些UI更改(比如更改文本或显示吐司),则该轨道将永远不会启动,并且我不会收到任何错误通知的通知。
mDeezerPlayer.addOnPlayerStateChangeListener(new OnPlayerStateChangeListener() {
@Override
public void onPlayerStateChange(com.deezer.sdk.player.event.PlayerState playerState, long l) {
if(mEventListener != null) {
[...]
if (playerState.equals(com.deezer.sdk.player.event.PlayerState.PLAYING)) { //TODO is this equal to resume?
mEventListener.onPlayerResume(); //WARNING if we message a toast during the first PLAYING event the track does not start
}
[...]
}
}
});
仅供参考,玩家正在接受服务,通过我的听众与活动进行沟通。我可以对其他PlayerState事件进行UI更改,但不能在第一次播放时进行UI更改。
这是SDK的错误还是我做错了什么? 感谢
答案 0 :(得分:1)
确实,SDK中存在一个问题:播放状态是在后台线程上触发的。 在此事件上修改UI会使线程崩溃并阻止播放曲目。
将来,将在主线程上触发PLAYING状态事件以允许UI事件。