Ответ 1
Недавно я написал аудиоплеер HTML5. У меня были аналогичные проблемы с iOS4 и iOS5. Во-первых, воспроизведение должно запускаться пользователем, что означает, что он должен находиться в том же стеке вызовов, что и событие клика.
Я тестировал это много, и iOS, похоже, вообще отказывался кэшировать аудио. Он воспроизводил звук с каждой игрой. Я думаю, что это должно считаться ошибкой, но, возможно, они пытаются сохранить местное пространство для хранения (аудиофайлы могут быть довольно большими).
Если ваши аудиофайлы не слишком велики, вы можете рассмотреть возможность добавления их вместе в один файл, а затем использовать паузу/прыжок в положение/воспроизведение для переключения между звуками. Я не пробовал, но он должен работать. Я не использовал эту технику, потому что мое приложение было музыкальным проигрывателем, а музыкальные файлы слишком велики, чтобы этот метод был ценным.