![]() |
|
||||||||||
|
|||||
|
Есть звук backSnd1, он должен отыграть 5 раз а затем моментально должен начать проигрываться звук. Звук backSnd2 - это модификация первого с добавлением парочки эффектов, все это реализует фоновое музыкальное сопровождение фильма. Т.е. в опр. момент фоновый звук преображается. Сначала попробовал реализовать это через onSoundComplete - была слышна пауза (это критично!). Теперь сделал так:
function play2(){ backSnd2.start(0,999); clearInterval(p2); } backSnd1.start(0, 5); p2=setInterval(play2, 5*backSnd1.duration-100); backSnd1.duration-100 - почему -100? Сначала написал просто backSnd1.duration, но опять-таки возникала пауза! Теперь второй звук начинает проигрываться типа чуть-чуть раньше положеного, все должно быть ок. На практике получается, что иногда возникает сбой - также слышно прерывание. Иногда. Это связано со спецификой самой setInterval - не всегда интервал есть таким, каким он должен быть. Это связано с загрузкой CPU, кратности длины кадра и .т.д. Пока ничего другого в голову не приходит. ![]()
__________________
Краткость - сестра таланта, если она не единственный ребенок в семье |
|
|||||
![]()
__________________
Краткость - сестра таланта, если она не единственный ребенок в семье |
|
|||||
|
Регистрация: Apr 2004
Адрес: Минск
Сообщений: 176
|
setInterval зависит от fps (интервал не может быть меньше
продолжительности отдельного кадра) fps, в свою очередь, тоже непостоянен и зависит от загрузки процессора. Таким образом точной синхронизации добиться нельзя.
__________________
Юра |
![]() |
Часовой пояс GMT +4, время: 05:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|