Kotlin, MediaPlayer: как сделать так, чтобы кнопка «Play» всегда воспроизводила музыку с самого начала - PullRequest
0 голосов
/ 02 июня 2018

Я создал Fragment / Activity, используя класс MediaPlayer.Имеет кнопку «Воспроизведение музыки».При нажатии проигрывается музыка без остановки.Мне нужна кнопка «Воспроизведение музыки», которая всегда играет музыку с самого начала, когда пользователь нажимает кнопку.Я использую KOTLIN .

Я использовал два разных типа кода -

1-й, когда я использовал его в Моем фрагменте Activity, getAssets () показала ошибка, и она не работает -

class TEST : Fragment() {

    val mp = MediaPlayer()

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.test, null)

    }

    override fun onResume() {
        super.onResume()

        (activity as MainActivity)
                .setActionBarTitle("TEST")




        but.setOnClickListener(object : View.OnClickListener {

            override fun onClick(v: View) {

                if (mp.isPlaying) {
                    mp.stop()
                }

                try {
                    mp.reset()
                    val afd: AssetFileDescriptor
                    afd = getAssets().openFd("AudioFile.mp3")
                    mp.setDataSource(afd.fileDescriptor, afd.startOffset, afd.length)
                    mp.prepare()
                    mp.start()
                } catch (e: IllegalStateException) {
                    e.printStackTrace()
                } catch (e: IOException) {
                    e.printStackTrace()
                }


            }
        })
    }
}

2-й, когда я использовал его, он не показал никаких ошибок, но не работает-

button.setOnClickListener {
      val mp = MediaPlayer.create(getActivity(), R.raw.sound1)
...