MediaPlayer finalized without being released
Böyle bir hata alıyorum. Buradaki amacım müziği sonuna kadar oynatmak ama müzik ortada bir yerde kesiliyor ve bu yukarıdaki hatayı (Warn) veriyor.
Activity’nin kodları bu şekilde, başka bir ayrıntı lazımsa söyleyin atayım.
package com.wondanes.musiki
import android.media.MediaPlayer
import android.os.Bundle
import android.widget.Button
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.squareup.picasso.Picasso
import com.wondanes.musiki.databinding.ActivityMainBinding
import com.wondanes.musiki.service.MusikAPIService
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
val retrofit = MusikAPIService().retrofit
private lateinit var binding : ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
super.onCreate(savedInstanceState)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
val button = findViewById<Button>(R.id.buttonOk)
button.setOnClickListener(){
startMusik()
}
}
fun startMusik() {
CoroutineScope(Dispatchers.Main).launch {
val musik = retrofit.getMusik()
println(musik[0])
binding.musikNamn.text = musik[0].namn.toString()
binding.artistNamn.text = "${musik[0].user.first_name} ${musik[0].user.second_name}"
val albumPhotoXML = findViewById<ImageView>(R.id.album_image)
Picasso.get().load("https://arslansah.com.tr" + musik[0].album.photo).into(albumPhotoXML)
val mediaPlayer = MediaPlayer()
mediaPlayer.setOnCompletionListener() {
fun onCompletion(mediaPlayer: MediaPlayer){
mediaPlayer.release()
}
}
mediaPlayer.setDataSource("https://arslansah.com.tr" + musik[0].src)
mediaPlayer.prepare()
mediaPlayer.start()
}
}
override fun onStart() {
super.onStart()
println("onStart çalıştı.")
}
override fun onResume() {
super.onResume()
println("onResume çalıştı.")
}
override fun onPause() {
super.onPause()
println("onPause çalıştı.")
}
override fun onStop() {
super.onStop()
println("onStop çalıştı.")
}
override fun onDestroy() {
super.onDestroy()
println("onDestroy çalıştı.")
}
}