Я сделал приложение для Android, которое воспроизводит определенные звуки. Я хочу, чтобы остановить звук, если следующий один играет, и я успешно сделал, что сСделайте MediaPlayer быстрее реагировать?
public void w1() throws IllegalArgumentException, SecurityException, IllegalStateException, IOException{
mediaPlayerW.reset();
mediaPlayerW.setDataSource(MainActivity.this, Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.w1));
mediaPlayerW.prepare();
mediaPlayerW.start();}
public void onClick(View f) {
if(f == button1)
{w1();}}
[другие методы называются w2; w3; w4 (...)], но давайте просто работать над одним звуком.
Это работает до сих пор, каждый звук кнопки может «задохнуться» сам (и начать играть снова с самого начала), и он останавливает других, поэтому всегда ТОЛЬКО «новый» звук воспроизводится.
Проблема, которую я получил сейчас, заключается в том, что у меня небольшое прерывание (~ 100 мс), если я нажму кнопку. Даже 40 мс будет слишком высоким для музыкального приложения. Можно ли предварительно загружать звуки в кеш или что-то еще? Я думаю, что .RESET() занимает большую часть времени ..
Thx для вашей помощи