[deezer] [android]在玩PLAYING PlayerState时跟踪不播放

时间:2015-08-12 09:30:05

标签: android service audio-player deezer android-music-player

我正在使用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的错误还是我做错了什么? 感谢

1 个答案:

答案 0 :(得分:1)

确实,SDK中存在一个问题:播放状态是在后台线程上触发的。 在此事件上修改UI会使线程崩溃并阻止播放曲目。

将来,将在主线程上触发PLAYING状态事件以允许UI事件。