Может кто-нибудь сказать мне, как создать объект MediaPlayer с несколькими дорожками или способ изменить песню для воспроизведения - PullRequest
0 голосов
/ 03 июля 2019

Мне удается заставить MediaPlayer в kotlin воспроизводить mp3-файл из папки Raw, и я могу воспроизвести другой файл, используя другой объект медиаплеера.Я хочу иметь возможность менять дорожку в одном и том же объекте 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).

...