Задержка воспроизведения потока Deezer

В настоящее время я работаю над музыкальным проигрывателем для Android, который может воспроизводить песни с нескольких веб-платформ. У меня проблема с Deezer: когда я проигрываю музыку, она запускается хорошо, но весь интерфейс приложения начинает тормозить и зависать, а если я приостанавливаю/играю песню, она начинает вести себя как старый компакт-диск, который не читается... ( В итоге ужасное качество песни с царапинами...)

Я использую Deezer SDK для Android. Вы можете найти мой код на GitHub: https://github.com/Valou3433/blade-player

Я действительно не понимаю, что я делаю неправильно, так как я просто вызываю методы Deezer TrackPlayer.playTrack(),play() и pause()...

Спасибо за вашу помощь !


person V. Haudiquet    schedule 10.05.2018    source источник


Ответы (1)


Недавно тоже столкнулся с похожей проблемой:

Потратив почти полдня на отладку и поиск решения, я заметил, что функция обратного вызова: onPlayerStateChange иногда вызывается из другого потока вместо потока main.

Я добавил свой код для выполнения в потоке main, и вуаля, он сработал.

Я сделал следующее изменение:

deezerPlayer.addOnPlayerStateChangeListener(new OnPlayerStateChangeListener()
        {
            @Override
            public void onPlayerStateChange(PlayerState playerState, long l)
            {
                new Handler(Looper.getMainLooper()).post(new Runnable() {
                        @Override
                        public void run() {
                            // my code here
                        }
                    });
            }
        });

Надеюсь, это сработает и для вас!

person Firoz Memon    schedule 19.09.2018