![]() |
sound.play() - искажается фоновая музыка в игре
При игровом процессе flash-игры должна проигрываться фоновая музыка (примерно 10 секундный фрагмент в цикле). Музыка берётся из подгружаемой swf (пробовал так же встраивать в проект [embeded]). Играю её стандартно (sound.play()) но она тормозит. Ощущение такое будто меняется частота дискретизации - очень не приятный эффект. Проигрывание той же музыки по завершению игрового процесса происходит нормально. Слышал, что flash может плохо распределить ресурсы во время множественной анимации. но я не могу сказать, что там уж очень сложная анимация (загрузка ЦП ~20%).
Встречался ли кто-нибудь с проблемой воспроизведения музыки? |
Расскажи подробнее, как музыку загоняешь. SoundChannel/SoundMixer?
Может попробовать буферизировать её при подгрузке с помощью SoundLoaderContext? |
Может быть ты неправильно зациклил звук - и он по циклу начинает гонять сам себя и накладывается поверх уже играющего - в этом случае обычно противный звук возникает. Попробуй посмотреть не накладуется ли звук.
Покрайней мере у меня когда то такая проблема была. |
Класс с музыкой экспортирован в 1-й кадр swf-ки, которая подгружается к основному приложению. Соответственно оттуда извлекаю объект (класса Sound), далее в нужный момент играю - play(). Перепробовал все варианты сжатия, битрейта и проч. Пробовал так же внедрять исходную mp3 в проект (Embeded[]).
Почти уверен, что тормоза из-за того, что в момент проигрывания, довольно много анимации на сцене. В итоге придумал, как "обмануть" систему. Нужные звуки начинаю проигрывать заранее (до анимации) с нулевой громкостью, а в нужный момент регулирую громкость нужных мне звуков - никаких тормозов! Что и понятно, т.к. звуковой буфер уже на аудиокарточке, которой абсолютно всё равно, что у меня в системе происходит. Тем не менее, думаю, что flash-player косячит с проигрванием звуков. Для нас он конечно однопоточный, но сам-то плеер многопоточный, и в чём проблема нормально отправить звуковой буфер во время сложной анимации - для меня загадка. Эксперимент провести не сложно - создайте класс, который при добавлении на сцену начнёт проигрывать ~10 сложных анимаций (MovieClip.gotoAndPlay(0)) и одновременно запустите какой-нибудь звук (Sound.play()). И добавьте его на сцену (не в первом кадре, а программно - например, по нажатию кнопки). Всем спасибо! |
| Часовой пояс GMT +4, время: 23:59. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.