[deezer][android] 作用于 PLAYING PlayerState 时曲目不播放
[deezer][android] Track not playing when acting on PLAYING PlayerState
我正在使用 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
}
[...]
}
}
});
仅供参考,播放器在服务中,通过我的监听器与 activity 通信。我可以对其他 PlayerState 事件进行 UI 更改,但不能对第一个 PLAYING 进行更改。
这是SDK的问题还是我做错了什么?
谢谢
SDK确实存在问题:后台线程触发PLAYING状态。
在此事件上修改 UI 会使线程崩溃并阻止曲目播放。
以后在主线程上触发PLAYING状态事件,允许UI事件。
我正在使用 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
}
[...]
}
}
});
仅供参考,播放器在服务中,通过我的监听器与 activity 通信。我可以对其他 PlayerState 事件进行 UI 更改,但不能对第一个 PLAYING 进行更改。
这是SDK的问题还是我做错了什么? 谢谢
SDK确实存在问题:后台线程触发PLAYING状态。 在此事件上修改 UI 会使线程崩溃并阻止曲目播放。
以后在主线程上触发PLAYING状态事件,允许UI事件。