我设法在kotlin中获得一个MediaPlayer来播放Raw文件夹中的mp3文件,并且可以使用mediaplayer的另一个对象来播放另一个文件。我希望能够在一个和同一个MediaPlayer对象中更改轨道。
我已经阅读了很多教程,但是没有人会显示如何创建一个启动了多个曲目的媒体播放器,或者如何在不创建新播放器的情况下交换歌曲。这使得第一个媒体播放器和新播放器可以同时播放声音。
package c.name.appname
import android.media.MediaPlayer
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private lateinit var mp: MediaPlayer
private lateinit var mp2: MediaPlayer
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button1 = findViewById(R.id.button297) as Button
val button2 = findViewById(R.id.button248) as Button
val mp = MediaPlayer.create(this, R.raw.song1)
val mp2 = MediaPlayer.create(this, R.raw.song2)
button1.setOnClickListener {
if (mp.isPlaying()) {
mp.pause()
} else {
mp.start()
if(mp2.isPlaying())mp2.pause()
}
}
button2.setOnClickListener {
if (mp2.isPlaying()) {
mp2.pause()
} else {
mp2.start()
if(mp.isPlaying()) mp.pause()
}
}
}
}
上面的代码有效。但这看起来很愚蠢。我希望能够创建一个可以更改声音或播放歌曲列表的媒体播放器对象。并在以后的情况下使用mp.selectTrack(int)。