Воспроизвести аудио с URL в Android (Kotlin) - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу воспроизвести mp3-файл с URL-адресом в моем приложении, но я получил ошибку. Я не знаю, что происходит, это мой код:

open class Relaxation_fragment : Fragment() {
    var mediaPlayer: MediaPlayer? = null
    val url = "https://sv.blogmusic.ir/myahang/Farzad-Farzin-Atish-320.mp3?_=1" // your URL here




    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.relaxation_fragment, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        play.setOnClickListener(){
           try {
               val mediaPlayer: MediaPlayer? = MediaPlayer().apply {
                   setAudioStreamType(AudioManager.STREAM_MUSIC)
                   setDataSource(url)
                   prepareAsync()
                   start()
               }

           }catch (e:Exception){
                 var toast=Toast.makeText(requireContext(),"Error",Toast.LENGTH_SHORT)
               toast.show()
           }
        }


    }
}

1 Ответ

0 голосов
/ 28 апреля 2020

Попробуйте использовать метод create () в MediaPlayer, чтобы получить экземпляр MediaPlayer и запустить его.

 public static MediaPlayer create(Context context, Uri uri) {
    return create (context, uri, null);
}

Ваша реализация должна выглядеть примерно так.

mediaPlayer = MediaPlayer.create(requiredContext(),Uri.parse("url"))  
mediaPlayer.start() 

kotlin

//click listener implementation

 try {
        val mediaPlayer: MediaPlayer? = MediaPlayer.create(activity,Uri.parse(url))
        mediaPlayer?.start()

    }catch (e:Exception){
        var toast=Toast.makeText(requireContext(),"Error",Toast.LENGTH_SHORT)
        toast.show()
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...