Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 06.09.2011, 08:12
Vasyaga вне форума Посмотреть профиль Отправить личное сообщение для Vasyaga Найти все сообщения от Vasyaga
  № 1  
Ответить с цитированием
Vasyaga

Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
The bomb! Синхронное воспроизведение звуков

Работаю над онлайн сексенсером и, как многие здесь, столкнулся с проблемой синхронного воспроизведения звуков. Итак, исходные данные: Есть 3 одинаковых объекта Sound, загруженных из одного MP3. Я воспроизвожу их одновременно по таймеру каждые 500 миллисекунд.
Вариант I: Используем Sound как есть. В этом случае звуки не проигрываются синхронно. Постоянно кто-то отстает, кто-то убегает вперед.
Вариант II: Прочитал, что подобная задержка может быть вызвана тем, что звук в MP3 и необходимо процессорное время для декодирования. Воспользовался волшебным методом Sound.extract() из FlashPlayer10 Sound API и залил содержимое MP3 в ByteArray. После этого создал 3 звука и при помощи события SampleDataEvent напрямую записывал несжатое содержимое звука:
Код AS3:
private function sampleDataHandler(evt:SampleDataEvent) : void {			
			var writeCount:int = (pos + SOUND_BUFFER_SIZE) > ba.length ? (ba.length - pos) : SOUND_BUFFER_SIZE;
			if(writeCount > 0) {
				evt.data.writeBytes(ba, pos, writeCount);					
			} else {
				pos = 0;
				//trace('stopped');
			}
 
			pos += writeCount;
		}
Размер буфера (SOUND_BUFFER_SIZE) использовал максимальный для уменьшения задержек - 65536. Стало лучше, но всё равно звук сбивается!!!
Есть ли способ синхронного воспроизведения динамически подгруженных звуков?


Последний раз редактировалось Vasyaga; 06.09.2011 в 08:14. Причина: Дополнение
Создать новую тему   Часовой пояс GMT +4, время: 11:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
SampleDataEvent , sound , синхронизация

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:16.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.