Итак, я создал простую панель звукового сопровождения в Android Studio и запустил ее с помощью ADB, чтобы протестировать ее на своем телефоне. Он работает отлично, но моя проблема - , когда я нажимаю кнопку для воспроизведения звукового клипа, есть вторая задержка, прежде чем я могу нажать ее еще раз, и вот звук. Я хотел был бы иметь возможность нажимать кнопку так же быстро, как я хочу, и заставить ее воспроизводить звук с минимальной задержкой.Время отклика кнопки Android
Еще одна проблема, которая у меня есть с кнопкой, заключается в том, что я хотел бы для ее остановить воспроизведение одного звука, если я нажму другую кнопку.
Все, что я использую сейчас, это Mediaplayer class
и setOnClickListener
. Это очень просто не много строк кода. Мне кажется, что я попытался изучить это в документации, но я не уверен, правильно ли сформулированы мои вопросы, поэтому любые предложения по более подробным вопросам, которые я мог бы искать в Интернете, были бы оценены.
Я не уверен, что это проблема, вызванная АБР или использование моего устройства, которое создает это отставание, поэтому любой персональный опыт будет также очень признателен.
****** EDIT ****** Для тех, кто просит код.
//set up the button sound
MediaPlayer mpButtonClick = MediaPlayer.create(this, R.raw.sound);
Button button = (Button) findViewById(R.id.button);
//button 1
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mpButtonClick.start();
}
});
У меня есть 5 кнопок, и все они работают так. Я просто воспроизвожу звуки из папки ресурсов, а 4 клипа - менее 2 секунд.
Поскольку я новичок в этом, я не знаю, как асинктас и SoundPool, я сейчас изучу их.
******** EDIT 2 **********
Таким образом, после выполнения некоторых исследований я решил Soundpool, скорее всего, будет то, что лучше всего подходит для того, что мне нужно. Но я видел, что он создает проблемы для других, которые разрабатывают с ним here и в Интернете в целом. Я также не использую файлы ogg, которые, как говорят люди, с большей вероятностью будут работать с SoundPool на разных устройствах.
asynctask звучит так, будто он может выполнить эту работу, но я не думаю, что он предназначен для использования таким образом.
Я также загрузил шесть приложений из магазина приложений, которые, как я чувствовал, хотели бы, чтобы мои были похожи, а тот, который был лучшим, не был разработан в среде Android, но с движком Unity. И поскольку у меня есть небольшой опыт в этом, я верю, что поеду по этому пути, спасибо всем.
Я не очень хорошо разбираюсь в средствах массовой информации с Android, но может ли запустить звук в asynctask, возможно, решить эту проблему? –
Пожалуйста, разместите свой код, чтобы мы знали, что вы уже пробовали. – Sector95
Android, к сожалению, известен своим лагиным звуковым ответом. –