Android 尝试在任何地方自由使用mediaplayer

Android 尝试在任何地方自由使用mediaplayer,android,kotlin,android-mediaplayer,Android,Kotlin,Android Mediaplayer,因此,我正在开发一个带有json数据的在线音乐播放器应用程序。这里我使用recycelr视图来显示歌曲列表。我必须面对控制媒体播放器在另一个活动中暂停开始的问题。因此,我创建了一个新文件Audio.kt,在这个文件中,我创建了所有媒体播放器方法的伴奏对象。现在我可以在任何地方使用mediaplayer,使用音频。[方法] 这是Audio.kt文件 class Audio { companion object { val mp = MediaPlayer()

因此,我正在开发一个带有json数据的在线音乐播放器应用程序。这里我使用recycelr视图来显示歌曲列表。我必须面对控制媒体播放器在另一个活动中暂停开始的问题。因此,我创建了一个新文件Audio.kt,在这个文件中,我创建了所有媒体播放器方法的伴奏对象。现在我可以在任何地方使用mediaplayer,使用音频。[方法]

这是Audio.kt文件

class Audio {

    companion object {

        val mp = MediaPlayer()


        @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
        fun loadMediaPlayer(url: String?) {
            mp.setAudioAttributes(
                AudioAttributes.Builder()
                    .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                    .setUsage(AudioAttributes.USAGE_MEDIA)
                    .build()
            )

            mp.setDataSource(url)
            mp.prepareAsync()

            mp.setOnPreparedListener {
                mp.start()
                    MainActivity.progressBar.visibility = View.GONE
                    MainActivity.slidingPlayBtn.visibility = View.VISIBLE
                    MainActivity.slidingPlayBtn.setImageResource(R.drawable.ic_pause)
                    MainActivity.main_pbar.visibility = View.GONE
                    MainActivity.mainPlayBtn.visibility = View.VISIBLE
                val duration: Long = Audio.mp.duration.toLong()
                val time = kotlin.String.format(
                    "%02d:%02d",
                    TimeUnit.MILLISECONDS.toMinutes(duration),
                    TimeUnit.MILLISECONDS.toSeconds(duration) -
                            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(duration))
                )

                MainActivity.totalDur.text = time
                MainActivity.seekBar.max =   duration.toInt()
            }

        }




        fun startMediaPlayer() {
            mp.start()
        }

        fun pauseMediaPlayer() {
            mp.pause()
        }

        fun stopMediaPlayer() {
            if (mp.isPlaying) {
                mp.stop()
                mp.reset()
            }
        }

        fun isNotPlaying(): Boolean {
            return !mp.isPlaying

        }

        fun mediaCurrPos(): Long {
            return mp.currentPosition.toLong()
        }


        fun mediaPlayerSeek(progress: Int) {
            mp.seekTo(progress)
        }

        fun nextMediaPlayer() {
            mp.setNextMediaPlayer(MediaPlayer())
        }

    }
}
那么现在我的问题是,这是一个好方法吗?否则我将来可能不得不面对问题

你还有别的想法吗