MediaPlayer, проблема запуска mp3 файла через URL

Рейтинг: 0Ответов: 1Опубликовано: 09.07.2023

При запуске mp3 файла через url выдаёт такую ошибку:

E  FATAL EXCEPTION: main
Process: com.example.tyjtdh, PID: 14075
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tyjtdh/com.example.tyjtdh.MainActivity}: java.io.IOException: setDataSource failed.: status=0x80000000
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3645)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
    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:2307)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7872)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: java.io.IOException: setDataSource failed.: status=0x80000000
    at android.media.MediaPlayer.nativeSetDataSource(Native Method)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1200)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1187)
    at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1152)
    at com.example.tyjtdh.MainActivity.onCreate(MainActivity.kt:31)
    at android.app.Activity.performCreate(Activity.java:8305)
    at android.app.Activity.performCreate(Activity.java:8284)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1417)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3626)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3782) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) 
    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:2307) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loopOnce(Looper.java:201) 
    at android.os.Looper.loop(Looper.java:288) 
    at android.app.ActivityThread.main(ActivityThread.java:7872) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 

Вот код запуска:

package com.example.tyjtdh

import android.media.AudioAttributes
import android.media.MediaPlayer
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

val url = "http://10.0.2.2:8000/yammy"
val mediaPlayer = MediaPlayer()

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var mediaPlayer = MediaPlayer.create(this, R.raw.oprivet)
        mediaPlayer.setAudioAttributes(AudioAttributes.Builder()
            .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
            .setUsage(AudioAttributes.USAGE_MEDIA)
            .build())
        mediaPlayer.setDataSource(url)
        mediaPlayer.prepare()
        mediaPlayer.start()
    }
}

Сам пробовал искать информацию, но ничего не нашёл (может плохо ищу). При запуске локального файла проблем не возникло. Если необходимо приложить ещё информацию пишите.

Ответы

▲ 0

Извиняюсь, ошибки новичка. ArchDemon прав по поводу разрешений, но так же я забыл убрать строчку: var mediaPlayer = MediaPlayer.create(this, R.raw.oprivet)