Android mediaplayer — невозможно установить URL-адрес источника данных

#android #android-mediaplayer

#Android #android-mediaplayer

Вопрос:

Я пытаюсь установить песню на MediaPlayer с помощью URL, но по какой-то причине я продолжаю получать такую ошибку:

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.setDataSource(java.lang.String)' on a null object reference
    at com.example.musicplayerjd.PlayerActivity.getIntentMethod(PlayerActivity.java:490)
    at com.example.musicplayerjd.PlayerActivity.onCreate(PlayerActivity.java:56)
    at android.app.Activity.performCreate(Activity.java:7893)
    at android.app.Activity.performCreate(Activity.java:7880)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3283)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3457) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044) 
    at android.os.Handler.dispatchMessage(Handler.java:107) 
    at android.os.Looper.loop(Looper.java:224) 
    at android.app.ActivityThread.main(ActivityThread.java:7562) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:9502020-12-25 18:22:29.435 1628-2212/? E/InputDispatcher: channel 'b9823c3 
    com.example.musicplayerjd/com.example.musicplayerjd.MainActivity (server)' ~ Channel is 
    unrecoverably broken and will be disposed!
 

Не могу понять, почему он говорит, что он ссылается на нулевой объект. Я много раз проверял, что данные, которые я вставляю в него, не равны нулю.
Я вставляю этот URL https://www.hrupin.com/wp-content/uploads/mp3/testsong_20_sec.mp3 -адрес, и каждый раз, когда я пытаюсь воспроизвести музыку, он выходит из строя с этим сообщением об ошибке.

Это код — простой код

 mediaPlayer.setDataSource(listSongs.get(position).getURL());
mediaPlayer.prepareAsync();
mediaPlayer.start();
 

* ListSongs содержит список URL-адресов

Ответ №1:

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.setDataSource(java.lang.String)' on a null object reference
    at com.example.musicplayerjd.PlayerActivity.getIntentMethod(PlayerActivity.java:490)
 

Этот сбой означает, что ваш объект MediaPlayer имеет значение null, а не аргумент setDataSource . Пожалуйста, правильно инициализируйте медиаплеер.

Комментарии:

1. это странно, потому что я инициализирую его mediaPlayer = MediaPlayer.create(getApplicationContext(), listSongs.get(position).getSongId()); , поэтому я не уверен, что я делаю неправильно..