MediaPlayer.setDataSource устарел на Android 6 - PullRequest
1 голос
/ 15 июня 2019

Я создаю приложение с помощью MediaPlayer для воспроизведения аудиофайлов из необработанной папки.Он отлично работает на Android 7 и выше, но для Android 6 вылетает.Кажется, MediaPlayer.setDataSource устарела на Android 6. Так что нужно использовать, чтобы MediaPlayer работал на Android 6. Есть ли альтернатива, которую я могу использовать только для того, чтобы мое приложение работало на Android 6.

Я скачали попытался запустить пример приложения с developer.android.com, но он также вылетает на Android 6.

Журналы сбоев -

java.lang.NoSuchMethodError: No virtual method setDataSource(Landroid/content/res/AssetFileDescriptor;)V in class Landroid/media/MediaPlayer; or its super classes (declaration of 'android.media.MediaPlayer' appears in /system/framework/framework.jar)
        at com.example.android.mediaplayersample.MediaPlayerHolder.loadMedia(MediaPlayerHolder.java:86)
        at com.example.android.mediaplayersample.MainActivity.onStart(MainActivity.java:57)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)

1 Ответ

0 голосов
/ 15 июня 2019

Похоже, MediaPlayer.setDataSource устарела на Android 6

Нет, метод, который вы пытаетесь вызвать , тогда не существовал. Добавлен в API уровня 24.

Так что же нужно использовать, чтобы MediaPlayer работал на Android 6

Для необработанного ресурса используйте статический метод create(), который принимает идентификатор ресурса .

...