Использование медиаплеера в котлине.Простой ксилофон - PullRequest
0 голосов
/ 21 декабря 2018

Я изучаю Kotlin и Android-студию.Пытался создать приложение для ксилофона.Создано несколько кнопок со слушателями onClick.Каждый из них воспроизводит отдельную заметку аудиофайла из моей папки raw.Работает нормально, но перестает играть ноты после 10+ нажатий на любую кнопку.Я застрял на этом некоторое время.

class music : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_music)
    val cButton = findViewById(R.id.c_key) as Button
    val dButton = findViewById(R.id.d_key) as Button
    val eButton = findViewById(R.id.e_key) as Button
    val fButton = findViewById(R.id.f_key) as Button
    val gButton = findViewById(R.id.g_key) as Button
    val aButton = findViewById(R.id.a_key) as Button
    val bButton = findViewById(R.id.b_key) as Button

    cButton.setOnClickListener {
        val mp = MediaPlayer.create(this, R.raw.note1_c)
        mp.start()
    }
    dButton.setOnClickListener {
        val mp = MediaPlayer.create(this, R.raw.note2_d)
        mp.start()
    }

... продолжается для всех кнопок.ти

1 Ответ

0 голосов
/ 21 декабря 2018

Я не знаю, решит ли это вашу проблему, но я предлагаю использовать один MediaPlayer объект, объявленный внутри onCreate():

var mp = MediaPlayer.create(this, R.raw.note1_c)

, затем внутри каждого слушателя:

if (mp.isPlaying) mp.stop()
mp = MediaPlayer.create(this, R.raw.note1_x)
mp.start()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...