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

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

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

Регистрация: Jul 2010
Сообщений: 71
По умолчанию зацикливание звука sound.start

пишу на AS2.0
аттачу из библиотеки звук:
Код AS1/AS2:
snd=new Sound()
snd.attachSound("s")
в нужное время проигрываю звук, зацикливая:
Код AS1/AS2:
snd.start(0, 999)
проблема в том что после проигрывания звука появляется небольшая пауза
затем опять проигрывается звук и появляется пауза и т.д.
таким образом невозможно получить непрерывный звук

подскажите как решить эту проблему

Старый 08.08.2010, 13:51
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Для оформления своего кода надо использовать теги [code][/code]

Старый 08.08.2010, 14:08
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 3  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Попробуйте
Код AS1/AS2:
snd = new Sound();
snd.attachSound("s");
snd.onSoundComplete = function  () 
{
	snd.start();
};
 
snd.start();
Но идеальную склейку никогда не получится организовать.

Также советую использовать для экспериментов несжатый звук (wav).

Можно использовать два экземпляра одного и того же звука и за несколько миллисекунд до окончания одного стартовать другой, но даже в этом случае будут временные искажения просто в силу того, что на флеше точно работать со временем невозможно, по крайней мере на AS2 (Особенно измерять текущее положение проигрываемого звука).

В дополнение вот тема была. Посмотрите там второй пример ("Cклеиваем звук без шва.rar")
__________________
Идите первым!


Последний раз редактировалось mooncar; 08.08.2010 в 14:26.
Старый 08.08.2010, 14:35
provigator вне форума Посмотреть профиль Отправить личное сообщение для provigator Найти все сообщения от provigator
  № 4  
Ответить с цитированием
provigator

Регистрация: Jul 2010
Сообщений: 71
2 mooncar:
по твоему примеру такая же пауза

Старый 08.08.2010, 14:45
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ты о примере с onSoundComplete ?
Ну да, я говорил, что это не идеальный вариант, он только удобнее - не надо указывать 999 как количество повтора.

Тогда смотри тему, которую я привел и второй пример там.
И учти, идеального решения нет.
__________________
Идите первым!


Последний раз редактировалось mooncar; 08.08.2010 в 14:57.
Старый 08.08.2010, 14:58
rainbowrussia вне форума Посмотреть профиль Отправить личное сообщение для rainbowrussia Найти все сообщения от rainbowrussia
  № 6  
Ответить с цитированием
rainbowrussia
 
Аватар для rainbowrussia

Регистрация: Feb 2008
Сообщений: 560
Цитата:
Сообщение от provigator Посмотреть сообщение
таким образом невозможно получить непрерывный звук
Есть подозрение что у вас в звуке присутствует пауза в начале или в конце.

Старый 08.08.2010, 15:02
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
rainbowrussia, пауза, пусть крохотная, но будет в любом случае...
__________________
Идите первым!

Старый 08.08.2010, 15:29
provigator вне форума Посмотреть профиль Отправить личное сообщение для provigator Найти все сообщения от provigator
  № 8  
Ответить с цитированием
provigator

Регистрация: Jul 2010
Сообщений: 71
2 mooncar:

помогла твоя идея:
Можно использовать два экземпляра одного и того же звука и за несколько миллисекунд до окончания одного стартовать другой.
Код AS1/AS2:
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тартовать нада не с позиции 0 которая стоит по дефолту: sound.start() а с 0.1 и более секунды звука sound.start(0.1,1)
c десятыми долями секунды работать возможно ведь выставляемое fps это количество кадров в секунду
в моём примере я подбирал время проигрывания звука t с учётом fps=24 а также времени проигрывания звука

стыковка получилась идеальной
спс


Последний раз редактировалось provigator; 08.08.2010 в 15:51.
Старый 08.08.2010, 15:43
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 9  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ну вот и хорошо... код только оформите.
__________________
Идите первым!

Старый 08.08.2010, 16:22
rainbowrussia вне форума Посмотреть профиль Отправить личное сообщение для rainbowrussia Найти все сообщения от rainbowrussia
  № 10  
Ответить с цитированием
rainbowrussia
 
Аватар для rainbowrussia

Регистрация: Feb 2008
Сообщений: 560
Цитата:
Сообщение от mooncar Посмотреть сообщение
rainbowrussia, пауза, пусть крохотная, но будет в любом случае...
Не поленился, провел эксперимент. Сгенерировал синус без пауз вначале и в конце, приаттачил, воспроизвел. Если в свойствах экспорта ставить MP3 то слышен артефакт, видимо за счет выравнивания MP3 по какому-то значению в милисекундах/фреймах или за счет алгоритма кодирования начало получается "замятым". Если ставить ADPCM или RAW, то получается чистый бесшовный звук.


Цитата:
нада не с позиции 0 которая стоит по дефолту: sound.start() а с 0.1 и более секунды звука sound.start(0.1,1)
Что лишний раз доказывает наличие паузы вначале.

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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