Я использую Android MediaPlayer для настройки потока URL в моем приложении.Я пробовал несколько разных постов, чтобы разобраться с кодом выхода и ошибкой: (1, -2147483648).
Я попытался несколько разных потоков, но я не могу заставить MediaPlayer работать.Я думал о перемещении по ExoPlayer от Google, но это немного сложнее, и я не хочу прыгать с корабля в случае, если я что-то упустил.
MediaPlayer:
private MediaPlayer player;
String url = "http://199.180.75.118:80/stream"; //temp stream
private void initializeMediaPlayer() {
player = new MediaPlayer();
player.setAudioAttributes( new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build());
try {
player.setDataSource(url);
player.prepareAsync();
player.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Я также включил разрешение Android:
<uses-permission android:name="android.permission.INTERNET" />
Я попытался использовать исходный тип потока (но выдает устаревшее предупреждение):
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
Поэтому вместо этого я использовал .setAudioAttributes(...)
Я попытался просто запустить prepare()
вместо prepareAsync()
, который дал название проблемы, но я по-прежнему получаю ту же ошибку.Я также посмотрел на фактическое определение ошибки ( Ошибка Android MediaPlayer (1, -2147483648) ).Я не думаю, что это проблема источника, так как я пробовал несколько других потоков.Пожалуйста, дайте мне знать, если я пропускаю что-то важное, что может быть причиной моей ошибки.
Редактировать Если это вообще поможет, я изучал свои звонки и обнаружил, что MediaPlayerникогда не звонит onPrepared(...)
.Я проверил Content-Types всех медиа, которые я тестировал, и все они были аудио / MPEG заголовками.Поэтому я не понимаю, почему MediaPlay не обращается к onPrepared.