Как известно без лишних ухищрений (это ключевая фраза) в своем AS3 (и в AS2 тоже) проекте можно использовать аудиофайлы только формата .mp3 (причем обязательно с частотой 44100hz!), что не есть хорошо.
Музыку в текущем проекте я решил хранить именно в таком формате (но конвертировать все равно пришлось - частота была неподходящей), а звуки, которых насчитывается уже почти сотня, конвертировать совсем уж не хочется: и потери качества, и прибавка в объеме неизбежна. Вернее не так: либо прибавка в объеме файлов, либо потери качества. Не хорошо.
Поскольку у меня был паки одних и тех же звуков в форматах .wav и .ogg, я решил искать библиотеки для работы с этими форматами и использовать вариант который больше понравится.
Для работы с форматом .wav я нашел прекрасную библиотеку - as3wavsound. Это был бы лучший выбор, но ограничения этой библиотеки как раз делают ее бесполезной в нашем случае - допустимый bit rate 8 или 16, когда у всех звуков в игре - 4 bitrate. Поизучал библиотеку, но это не позволило мне дописать возможность поддержки 4-битных звуков. Опять не подходит, но хотелось бы вернуться к использованию этого наилучшего варианта. На 16 битных звуках все проверял :)
Остается использовать .ogg, может быть с ним будет меньше проблем? Найдена библиотека AS3 OggVorbis Library и Mauft Frontend для нее. Результат использования библиотеки в моем проекте меня не устраивает - перед проигрыванием каждого звука происходит очень сильный лаг, при манипуляциях с массивом байтов.
Результат: звуки до сих пор не внедрены, их нужно либо снова конвертировать, либо искать проблему в Ogg библиотеке.
Не совсем понятно, что конкретно требуется, поэтому просто расскажу как мы вставляли звук для одной игры. Необходимо было грузить звуки извне и иметь возможность играть их в циклах. Каждый звук обернули в SWF, грузили ее, а потом из нее доставали класс по имени и создавали звук. Звуков было тоже много, посему написали скрипт для Flash IDE, который брал звук, пихал его в библиотеку файла и собирал флэшку. В итоге имеем тонну свфок, размер их как mp3, а так как используется нативный энкодер, нет проблем с зацикливанием.
ОтветитьУдалитьВозможно, чем-то пригодится такой подход и в твоем проекте.
Интересный вариант, спасибо за совет.
УдалитьПроблему я пока не решил, на выходных был занят другими вещами, но сегодня попробую использовать с той же as3wavsound новые wav-файлы, сохраненные при помощи других кодеков и соответственно с другими параметрами.
Забыл написать, формат исходника — wav.
ОтветитьУдалитьА почему бы непосредственно в Flash IDE не импортировать wav без потери качества? И уже в нем настроить битрейт, компрессию и качество для звука. Это также позволит избежать проблем с зацикливанием музыки и звуков, потому что кодек mp3 вставляет паузу в конце
ОтветитьУдалитьДело в том что я не работаю в IDE. Дорогостоящая софтина, а я не пират.
УдалитьПроблема у меня только в том, что имеющиеся библиотеки не поддерживают используемые кодеки wav. Где-то битрейт не такой, какой надо, где еще что. На выходе получаю в лучшем случае - шум. Но не конвертирую в точно поддерживаемый "из коробки" формат, потому что размер файла и качество серьезно поменяются, ищу другой выход.
Вообще конвертация - последнее, к чему приходится обратиться и это уже точно работает, если не хочется парить мозги.
УдалитьНо все равно немного досадно, что подходящих библиотек на все случаи жизни найти не удается.