Когда я добавляю код, чтобы приложить эффект BassBoost
, onCompletionListener
моего MediaPlayer
уволен сразу. Вот соответствующий код:Почему onCompletionListener сразу срабатывает при подключении AudioEffect?
player.setDataSource(context, Uri.parse(song.filename));
// everything is fine if I comment out these 3 lines
BassBoost boost = new BassBoost(0, player.getAudioSessionId());
boost.setStrength((short) 1000);
player.attachAuxEffect(boost.getId());
player.prepare();
player.start();
Я экспериментировал с порядком данного кода безрезультатно. Наконец, я зарегистрировал значения getCurrentPosition()
и getDuration()
в обработчике завершения, и вы бы не знали об этом: они оба равны нулю!
Моя нынешняя мысль заключается в том, что для прикрепления эффекта требуется асинхронная подготовка, но я не смог найти никаких дополнительных подсказок.