Вопрос по media-player, android – Ошибка Android MediaPlayer: ошибка MediaPlayer (1, -2147483648) при потоковой передаче из Интернета
Я пытаюсь транслировать аудио с URL. Код прекрасно работает с другими URL-адресами, но в одном из них происходит сбой вOnPrepared
метод, возвращающий этот код ошибки: (1, -2147483648). Я читал, что некоторые люди говорили, что это из-за разрешений, но это удаленный файл, поэтому я не могу устанавливать разрешения. Я пробовал URL-адрес с другими приложениями, такими как VLC и iTunes, и он работает нормально. Мой код здесь:
private void prepareradio() {
player = new MediaPlayer();
player.setAudioStreamType(MODE_WORLD_READABLE);
try {
player.setDataSource(url);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
player.setOnErrorListener(new OnErrorListener(){
public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
Toast.makeText(getApplicationContext(),"An error happened while preparing radio",Toast.LENGTH_LONG).show();
prepareradio();
playe.setEnabled(true);
hidenot();
return false;
}
});
Если вы проводите тестирование на устройствах, предшествующих Android 3.1, возможно, вы не сможете воспроизводить AACP (как показано на информационной странице для потоковых потоков (AAC +).
Информационная страница для вашего потока:
Чтобы узнать, какие потоки вы можете воспроизводить на целевом устройстве, проверьте официальные документы:http://developer.android.com/reference/android/media/AudioManager.html
Если вы ищете, как обработать aacp checkout следующим образом:
https://stackoverflow.com/a/8833346/200272
Я также получал ту же ошибку на Froyo & amp; Имбирный пряник. В более высоких андроидах то же видео воспроизводилось хорошо. Наконец, после долгих исследований, попытался изменить URL Https на URL Http & Амп; Бинго. Это решило мою проблему. Я использовал сервер amazon S3, чтобы просто заменить & quot; https & quot; в URL с "http" было достаточно.
videoUrl= videoUrl.replaceFirst("https", "http");
PS: для поддержки более старых версий, если вы используете H.264, убедитесь, что видео имеют базовую кодировку.