Подскажите, пожалуйста, как реализовать MediaPlayer во Fragment?

Само приложение запускается, но ни один clickListener не отрабатывает, кроме смены play/pause, этот же код переписываю в MainActivity, все работает, как быть, помогите

class MainActivity : AppCompatActivity() {

private var playScreenFragment = PlayScreenFragment.newInstance()


override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    setupPlayScreenFragment()
}


private fun setupPlayScreenFragment() {
    supportFragmentManager
        .beginTransaction()
        .replace(R.id.play_screen_frame_layout, playScreenFragment, PlayScreenFragment.TAG)
        .commitAllowingStateLoss()
}

}

class PlayScreenFragment : Fragment() {

lateinit var mediaPlayer: MediaPlayer
var seekBarUpdateHandler = Handler()
lateinit var updateSeekBar: Runnable


companion object {
    const val TAG = "PlayScreenFragment"
    fun newInstance(): PlayScreenFragment {
        val args = Bundle()
        val playScreenFragment = PlayScreenFragment()
        playScreenFragment.arguments = args
        return playScreenFragment
    }
}


lateinit var fragmentPlayScreenBinding: FragmentPlayScreenBinding

override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {

    fragmentPlayScreenBinding =
        DataBindingUtil.inflate(inflater, R.layout.fragment_play_screen, container, false)
    return fragmentPlayScreenBinding.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    runMediaPlayer()
}

private fun runMediaPlayer() {
    mediaPlayer = MediaPlayer.create(activity, R.raw.one_for_daddy)
    play_image_view.setOnClickListener {
        if (!mediaPlayer.isPlaying) {
            mediaPlayer.start()
            play_image_view.setImageResource(R.drawable.ic_pause)
        } else {
            mediaPlayer.pause()
            play_image_view.setImageResource(R.drawable.ic_play)
        }
    }
    back_5_image_view.setOnClickListener {
        mediaPlayer.seekTo(mediaPlayer.currentPosition - 5000)
    }

    forward_5_image_view.setOnClickListener {
        mediaPlayer.seekTo(mediaPlayer.currentPosition + 5000)
    }
    seekbar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {

        override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
            if (p2) {
                mediaPlayer.seekTo(p1)
            }
        }

        override fun onStartTrackingTouch(p0: SeekBar?) {
        }

        override fun onStopTrackingTouch(p0: SeekBar?) {
        }

    })
    updateSeekBar = Runnable {
        seekbar.progress = mediaPlayer.currentPosition
        seekBarUpdateHandler.postDelayed(updateSeekBar, 1000)
    }
    seekBarUpdateHandler.postDelayed(updateSeekBar, 1000)
    mediaPlayer.setOnCompletionListener {
        play_image_view.setImageResource(R.drawable.ic_play)
        seekbar.progress = 0
    }
}

}


Ответы (0 шт):