Воспроизведение звука очень быстро с Soundpool - PullRequest
2 голосов
/ 23 октября 2011

Я создаю приложение, для которого требуется, чтобы звук или звуки потенциально воспроизводились каждые ~ 25 мс. (300 ударов в минуту с потенциально 8 "играми" за удар)

Сначала я использовал SoundPool для этого. У меня есть 3 темы. Один обновляет анимацию SurfaceView, один обновляет время с помощью System.nanoTime (), а другой - воспроизводит звуки (mp3) с помощью Soundpool.

Это работает, но, похоже, использует большую мощность процессора, так как каждый раз, когда запускается фоновый процесс, такой как повторное сканирование WiFi или GC, он начинает пропускать такты здесь и там, что недопустимо.

Я ищу альтернативное решение. Я смотрел на микширование, а также на двигатель JET.

Механизм JET не выглядит решением, так как он использует только MIDI. Мое приложение требует качественных звуков (записи с реальных инструментов). (поправьте меня, если я ошибаюсь на миди не высокого качества)

Микширование с Android кажется очень сложным, так как сначала кажется, что вы должны получить необработанный звук (занимает много памяти), а также создать «тишину» между звуками. Я не уверен, является ли это наиболее элегантным решением, поскольку у моего приложения будет изменяемая скорость (bpm), контролируемая пользователем.

Если кто-то имеет опыт в этой области, я был бы очень признателен за любой совет.

Спасибо

...