![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2010
Сообщений: 71
|
пишу на AS2.0
аттачу из библиотеки звук: в нужное время проигрываю звук, зацикливая: проблема в том что после проигрывания звука появляется небольшая пауза затем опять проигрывается звук и появляется пауза и т.д. таким образом невозможно получить непрерывный звук подскажите как решить эту проблему |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Для оформления своего кода надо использовать теги [code][/code]
|
|
|||||
|
Модрон-ветеринар
|
Попробуйте
snd = new Sound(); snd.attachSound("s"); snd.onSoundComplete = function () { snd.start(); }; snd.start(); Также советую использовать для экспериментов несжатый звук (wav). Можно использовать два экземпляра одного и того же звука и за несколько миллисекунд до окончания одного стартовать другой, но даже в этом случае будут временные искажения просто в силу того, что на флеше точно работать со временем невозможно, по крайней мере на AS2 (Особенно измерять текущее положение проигрываемого звука). В дополнение вот тема была. Посмотрите там второй пример ("Cклеиваем звук без шва.rar")
__________________
Идите первым! Последний раз редактировалось mooncar; 08.08.2010 в 14:26. |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 71
|
2 mooncar:
по твоему примеру такая же пауза |
|
|||||
|
Модрон-ветеринар
|
Ты о примере с onSoundComplete ?
Ну да, я говорил, что это не идеальный вариант, он только удобнее - не надо указывать 999 как количество повтора. Тогда смотри тему, которую я привел и второй пример там. И учти, идеального решения нет.
__________________
Идите первым! Последний раз редактировалось mooncar; 08.08.2010 в 14:57. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Есть подозрение что у вас в звуке присутствует пауза в начале или в конце.
|
|
|||||
|
Модрон-ветеринар
|
rainbowrussia, пауза, пусть крохотная, но будет в любом случае...
__________________
Идите первым! |
|
|||||
|
Регистрация: Jul 2010
Сообщений: 71
|
2 mooncar:
помогла твоя идея: Можно использовать два экземпляра одного и того же звука и за несколько миллисекунд до окончания одного стартовать другой. snd1=new Sound() snd1.attachSound("s") snd2=new Sound() snd2.attachSound("s") n=1 t=0 snd1.start() onEnterFrame=function() { t++ if(n==1 and t==42) { snd1.stop() snd2.start(0.1,1) t=0 n=2 } if(n==2 and t==42) { snd2.stop() snd1.start(0.1,1) t=0 n=1 } } c десятыми долями секунды работать возможно ведь выставляемое fps это количество кадров в секунду в моём примере я подбирал время проигрывания звука t с учётом fps=24 а также времени проигрывания звука стыковка получилась идеальной спс Последний раз редактировалось provigator; 08.08.2010 в 15:51. |
|
|||||
|
Модрон-ветеринар
|
Ну вот и хорошо... код только оформите.
__________________
Идите первым! |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Не поленился, провел эксперимент. Сгенерировал синус без пауз вначале и в конце, приаттачил, воспроизвел. Если в свойствах экспорта ставить MP3 то слышен артефакт, видимо за счет выравнивания MP3 по какому-то значению в милисекундах/фреймах или за счет алгоритма кодирования начало получается "замятым". Если ставить ADPCM или RAW, то получается чистый бесшовный звук.
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|