Я розглядав Android SoundPoolяк механізм реалізації звукових ефектів у своїй загальній бібліотеці розробки ігор. Це здавалося ідеальним.
Але трохи досліджень вказує на те, що всі види з помилок в SoundPool. Чи помилки SoundPoolвсе ще актуальні?
Оскільки я розробляю бібліотеку, будь-які помилки SoundPoolстають помилками в моїй бібліотеці, і я хочу ізолювати своїх користувачів від цього.
Тож моє питання в основному: який API я повинен використовувати для аудіо?
Про використання AudioTrackта написання власного міксера не може бути й мови. Але, очевидно, було б кращим уникати цього. І чи є якийсь API для забезпечення декодування для мене?
Мені потрібно вміти відтворювати розумну кількість одночасних звукових ефектів (принаймні 16, скажімо так) і мати ще більше відкритості. Звуки потрібно починати грати з низькою затримкою. WAVфайли повинні підтримуватися (MP3 / Ogg не має значення). Звукові ефекти повинні підтримувати безперебійне циклічне та динамічне індивідуальне регулювання гучності. Життєвий цикл програми Android повинен бути належним чином підтриманий.
Я чув, що десь існує обмеження в 1 Мб SoundPool, це, мабуть, прийнятно для кожного окремого звукового ефекту, але не для всіх буферів / звуків. Хтось може сказати мені, який саме ліміт?
Нарешті, мені також потрібно вміти відтворювати фонову музику в стислому форматі з низьким навантаженням на процесор. Я припускаю MediaPlayer, що для цього ідеально. Чи можна його використовувати паралельно з іншим API?
Я знаю, що кілька людей використовували MediaPlayerдля заповнення SoundPool. Але чи підтримує він функції, які мені потрібні?
Чи є якісь інші аудіо API, які я пропустив?