2015-09-22 2 views
0

Итак, я создал простую панель звукового сопровождения в 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. И поскольку у меня есть небольшой опыт в этом, я верю, что поеду по этому пути, спасибо всем.

+0

Я не очень хорошо разбираюсь в средствах массовой информации с Android, но может ли запустить звук в asynctask, возможно, решить эту проблему? –

+1

Пожалуйста, разместите свой код, чтобы мы знали, что вы уже пробовали. – Sector95

+0

Android, к сожалению, известен своим лагиным звуковым ответом. –

ответ

0

Вместо этого используйте SoundPool ... вы можете предварительно загрузить звуки, и это позволит вам накладывать звуки.

Подробнее information here.

Смежные вопросы