Я использую MediaPlayer
для потоковой передачи по протоколу HTTP. На Lollipop мой поток занимает около минуты, чтобы начать, что неприемлемо. Это займет около 20 секунд на Киткате, что уже больно, но теперь стало непригодным.
Существует хорошо известная проблема с этим компонентом, связанным с буферизацией: количество байтов в буфер закодировано и не может быть изменено.
Мой код действительно стандартный
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource(streamUrl);
player.prepareAsync();
И на подготовленный я делаю
player.start();
Я слышал об альтернативах как GStreamer
, но я не мог заставить его работать в Windows.
Интересно, есть ли у кого-нибудь рабочее решение для потоковой передачи по протоколу HTTP с приемлемой задержкой запуска.
ИЗМЕНИТЬ
Я тестировал ExoPlayer, но более низкое начальное время, которое я получаю, составляет 15 секунд. Игрок застревает в состоянии "подготовки" (не буферизации, которое позже пока я вижу).
ИЗМЕНИТЬ
Формат потока AAC
ИЗМЕНИТЬ
Я тестировал https://code.google.com/p/aacdecoder-android/, но единственной проблемой, с которой связана эта библиотека, является отсутствие поддержки для потоковой паузы. Это требование моего приложения поддерживать паузу в онлайн-потоке.