Я потратил много часов, пытаясь выяснить это:
Когда MediaPlayer загружается и запускается в первый раз, вызывается его OnCompletion.Это проблема, потому что у меня есть некоторый код, который пропускает к следующему треку, когда предыдущий трек закончен.
Я решил это, используя флаг в слушателе OnCompletion, но почему это так?
Этот фрагмент из метода play () в моем сервисе:
mp.setDataSource(mCurrentMediaFile);
mp.prepare();
mDuration = mp.getDuration();
int seek = mDuration * position / 1000;
mp.seekTo(seek);
mp.start();
По какой-то причине onCompletion вызывается сразу после возврата из метода play (), хотя это первый трек, который воспроизводится послеслужба создана.