Я пишу приложение для Android для воспроизведения потока крика для издателя, который реализует веб-радио.
На уровне API 8 (android 2.2) класс MediaPlayer может воспроизводить поток, поэтому:
Uri myUri = ....; // initialize Uri here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myUri);
mediaPlayer.prepare();
mediaPlayer.start();
В реальном приложении я использую prepareasync(), поэтому пользовательский интерфейс реагирует на ProgressDialog.
Но для этого примера prepare() нормально.
Теперь... на Android ‹ 2.2 (уровень API ‹ 8) медиаплеер не воспроизводится. на Android >= 2.2 (уровень API >= 8) медиаплеер воспроизводится, но не на всех устройствах.
Этот код работает на:
Nexus One (CyanogenMod 7, Android 2.3.x) Samsung Galaxy S (Stock Rom, Android 2.3.x) Samsung Galaxy S 2 (Stock Rom, Android 2.3.x) HTC Desire (Stock Rom, Android 2.3.x) HTC Desire HD (Stock Rom, Android 2.3.x) Эмулятор (Android 2.2) Asus eee Pad Transformer TF101 (Stock Rom, Android 4.0.3)
Этот код не работает на всех устройствах LG с Android > 2.2... но... почему?
Как я могу играть в Shoutcast Strem на устройствах LG?