Собственное расширение Adobe для Android для воспроизведения звуков

Я разрабатываю простую игру для Android с использованием Adobe Air, но при воспроизведении на устройстве есть некоторая задержка звуковых эффектов. Я проверил звук (файл mp3), есть ли в начале тишина, но в звуковом файле нет тишины. Поэтому я подумал, что могу разработать ANE, чтобы воспроизводить звуки и избегать задержки звука. Теперь проблема с ANE заключается в том, что он выдает ошибку ввода-вывода при попытке доступа к mp3-файлу. Я новичок в создании ANE, и я не могу заставить это работать. У меня есть mp3-файл в папке res / raw по имени snd.mp3, и у меня есть папка res, скопированная в папку Android-ARM и упакованную ANE вместе со звуками.jar и library.swf. Я использую SoundPool для воспроизведения звука.

Я попытался получить доступ к звуку, передав строку функции загрузки SoundPool:

sp.load("android.resource://" +
        freContext.getActivity().getPackageName() +  
        freContext.getResourceId("raw.snd"));

Однако resourceId дает уникальный номер, который показывает, что звуковой файл существует, но я не могу воспроизвести звук. Я тоже пробовал с MediaPlayer, то же самое. Выдает ошибку ввода-вывода. Есть ли что-то, что я делаю неправильно или упускаю? Любая помощь будет оценена. Заранее спасибо.


person animator    schedule 01.05.2015    source источник


Ответы (1)


Вам понадобится дополнительная косая черта между именем пакета и идентификатором ресурса:

sp.load("android.resource://" +
        freContext.getActivity().getPackageName() + "/" +
        freContext.getResourceId("raw.snd"));
person Dave Walker    schedule 30.06.2015