все немного по-другому. Вы должны проверить код ответа, который следует после http-запроса.
ожу большие различия во времени, которое требуется Android MediaPlayer для подготовки к воспроизведению в прямом эфире с различными потоками.
Твердые данные
Я добавил протоколирование между prepareAsync () и обратным вызовом onPrepared (MediaPlayer mp) и протестировал несколько потоков по несколько раз каждый. Время для каждого потока было очень согласованным (+/- одна секунда), и вот результаты:
Поток новостей MPR: 27 секунд (http://newsstream1.publicradio.org:80/)Поток классической музыки MPR: 15 секунд (http://classicalstream1.publicradio.org:80/)MPR Текущий поток: 7 секунд (http://currentstream1.publicradio.org:80/)Поток PRI: 52 секунды (http://pri-ice.streamguys.biz/pri1)Тесты проводились на Nexus S с Android 2.3.4 при подключении 3G (~ 1100 Кбит / с).
Воспроизведение не потоковых аудиофайлов MP3 не является проблемой.
Вот фрагменты того, как я играю в потоках:
Подготовьте MediaPlayer:
...
mediaPlayer.setDataSource(playUrl);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepareAsync();
...
Затем в onPrepared (MediaPlayer mp):
mediaPlayer.start();
Почему подготовка одних потоков занимает так много времени, а других - нет? Приведенные выше данные свидетельствуют о том, что этомог бы основываться наколичество данных, которые были буферизованы, а непродолжительность буферизованного аудиоконтента. Может ли это быть на самом деле?
Обновить: Я тестировал потоковую трансляцию на физических устройствах с Android 1.6, 2.2 и 2.3.4 и эмуляторах с 1.6, 2.1, 2.2, 2.3.1 и 2.3.3. Я вижу только большую задержку на 2.3.3 и 2.3.4. Старые версии начинают воспроизведение в течение 5 секунд.