Я пытаюсь позволить пользователю открыть аудиофайл и воспроизвести этот файл. Однако метод MediaPlayer.create()
возвращает null
. Вот мой код:android: mediaplayer.create() возвращает null
MediaPlayer mediaPlayer;
public void start(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/*");
startActivityForResult(intent,1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == RESULT_OK) {
Uri uri = data.getData();
mediaPlayer = MediaPlayer.create(this,uri);
//startThread();
mediaPlayer.start();
} else {
mediaPlayer.start();
}
}
Я пробовал его с mp3-файлами, что у моего устройства нет проблем с другими игроками. Uri i get выглядит так: "content://media/external/audio/media/137650"
Что я делаю неправильно?
API create() API возвращает null, если он каким-то образом не прошел. Причина в этом случае - поврежденный mp3-файл. Вы пробовали разные файлы? –
Убедитесь, что у вас есть разрешение READ_EXTERNAL_STORAGE. Это, в свою очередь, требует, чтобы вы запрашивали разрешения во время выполнения, если ваш 'targetSdkVersion' равен 23 или выше, и вы тестируете на Android 6.0 или выше. Вы также можете проверить LogCat для любых релевантных сообщений, так как «MediaPlayer» имеет тенденцию регистрировать материал с серьезностью предупреждения и не исключать исключения. Кроме того, не называть 'mediaPlayer.start()' в вашем блоке 'else', так как вы не инициализировали' mediaPlayer'. – CommonsWare
Да, и как я уже сказал, другие игроки могут играть в эти файлы. они определенно не коррумпированы – Ginso