У меня есть около 100 аудиофайлов в необработанной папке, эти 100 файлов просто говорят числа от 1 до 100.
После того, как я нажму на кнопку. Я хочу, чтобы он воспроизводил число в соответствии с текстом, введенным в текстовое поле.
Поэтому я использую звуковой пул и хеш-карту. Это работает просто отлично без каких-либо проблем
soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 100);
soundsMap = new HashMap<Integer, Integer>();
soundsMap.put(1, soundPool.load(this, R.raw.number1, 1));
soundsMap.put(2, soundPool.load(this, R.raw.number2, 1));
как указано выше до номера 100. Я получаю значение текстового поля
Я поставил цикл for от 1 до 100. какое бы значение ни было воспроизведено.
используя soundPool.play(1,....)
Это работает просто отлично без каких-либо проблем.
Но странная вещь в том, что, поскольку он создает haspmap со значением 100 ... есть 5-секундная задержка и пустой экран, и я ничего не могу сделать с происходящим процессом.
Есть ли способ просто создать хэш-карту в соответствии со значением и воспроизвести звук.
Как сказать, например,
Если текстовое поле имеет значение 20
in the for loop: i=1 to 100..
it should get the value 20:
string a = "R.raw.number"+i
SoundsMap.put(1, soundPool.load(this, a, 1));
soundPool.play(1,....)
если выше возможно... Как мне это сделать?
Ждем вашего ответа! Спасибо!
AsyncTask
) и отображать индикатор выполнения во время загрузки. Я не понимаю, для чего вы используете цикл for. - person kabuko   schedule 08.06.2012if(editText.getText().equals(String.valueOf(i)))
? Нонононо. Разберите ввод в число и идите оттуда. Проверьте мой пример ниже. - person Kevin Coppock   schedule 08.06.2012