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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.06.2008, 23:24
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 1  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
По умолчанию Экспортировать звук (в который раз =)

Ну, ситуация вроде как немного поменялась =) Кто-нибудь пробовал/кому-нибудь попадались какие-нибудь статьи на тему Sound -> ByteArray -> WAVE? Ну и если есть просто общая информация по поводу того, как собстенно Флеш проигрывает и "видит" звуки - тоже интересно =) Zinc просьба сразу не учитывать, не потому что, а потому что уже учтен, как вариант (есть один маленький недостаток - максимальный сампрейт немного не дотягивает, надо бы 48Кгц, а так вполне устроил бы) =)
__________________
Hell is the possibility of sanity

Старый 16.06.2008, 23:58
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Собственно, на данный момент под девяткой единственный метод генерации звука — создание небольшого wav-файла в несколько семплов, обернутого в swf и загруженным через Loader.

Старый 17.06.2008, 00:27
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Не, мне нужно наоборот =) wave/mp3 уже существует, а мне нужно его просто перезаписать (возможно, внеся изменения по дороге - продвинутая стадия). 10-ка тоже вполне приемлимый вариант, я даж скорее на нее и рассчитываю - где-то попадалась инфа, что данные о звуке можно получить в виде массива байтов (вот ток на что этот массив будет похож - я, ессно, не знаю, но если это что-то легко трансформируещееся в RIFF / AIFF, то можно было бы попробывать сваять из этого новый WAVE, ну а дальше - по той же схеме, что и с картинками - послать серверу на хранение =)
__________________
Hell is the possibility of sanity

Старый 17.06.2008, 00:37
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
WAVE проблем нет, а для mp3 тебе нужен декодер и кодер, соответственно. Таковых на AS3 я не видел.

Старый 17.06.2008, 00:46
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
mp3 и не нужно =) я просто еще даж не начинал особенно поиски в эту сторону, но если есть авторитетное мнение, что нет проблем - завтра же пойду убеждать начальство в реализуемости %) еще бы, конечно, какой-нибудь примерчик в тему найти...
__________________
Hell is the possibility of sanity

Старый 17.06.2008, 18:53
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 6  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
на счет реализации во флеше сказать не могу. но недавно имел дело с wav форматом и могу сказать что он очень прост в реализации.
есть заголовок, есть массив значений амплитуд.
__________________
я могу стать всем, если только захочу

Старый 17.06.2008, 20:27
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну, я где-то так и надеялся в душе, что не должно быть очень сложно %) Но пока что загвоздка оказалась немного в другом - не могу понять как флеш описывает звук...
Код:
package encoding {
	
	/**
	* ...
	* @author wvxvw
	*/
	import flash.media.SoundMixer;
	import flash.utils.ByteArray;
	import flash.utils.Endian;
	
	private static var _dataSize:int = 0;
	private static var _header:ByteArray;
	
	private static function writeHeader():void
	{
		_header = new ByteArray();
		_header.endian = Endian.LITTLE_ENDIAN;
		
		_header.writeMultiByte('RIFF', 'us-ascii');
		_header.writeInt(0); // size! should redefine!!!!!!!!
		_header.writeMultiByte('WAVE', 'us-ascii');
		_header.writeMultiByte('fmt ', 'us-ascii');
		_header.writeInt(40); //fmt chunk size may be different!
		_header.writeByte(0xFF);
		_header.writeByte(0xFE); // WAVE_FORMAT_EXTENSIBLE may be different!
		_header.writeByte(0x02);
		_header.writeByte(0x00); // channels
		_header.writeInt(44100); // sample rate : 44100 Hz
		_header.writeInt(352800); // bytes per second
		_header.writeByte(0x08);
		_header.writeByte(0x00); // bytes per block
		_header.writeByte(0x20);
		_header.writeByte(0x00); // bytes per sample
		_header.writeByte(0x0D);
		_header.writeByte(0x00); // additional info
		_header.writeByte(0x20);
		_header.writeByte(0x00); // valid bytes per sample
		_header.writeByte(0x04);
		_header.writeByte(0x00);
		_header.writeByte(0x00);
		_header.writeByte(0x00);// bytes per channel
		_header.writeByte(0x01);
		_header.writeByte(0x00);
		_header.writeByte(0x00);
		_header.writeByte(0x00);
		_header.writeByte(0x00);
		_header.writeByte(0x00);
		_header.writeByte(0x10);
		_header.writeByte(0x00);
		_header.writeByte(0x80);
		_header.writeByte(0x00);
		_header.writeByte(0x00);
		_header.writeByte(0xAA);
		_header.writeByte(0x00);
		_header.writeByte(0x38);
		_header.writeByte(0x9B);
		_header.writeByte(0x71); // subformat
		_header.writeMultiByte('fact', 'us-ascii');
		_header.writeInt(4);
		_header.writeInt(0);
		_header.writeMultiByte('data', 'us-ascii');
		_header.writeInt(0); //data size! should redefine!!!!!!!!
	}
	
	public static function encode():ByteArray
	{
		return _header;
	}
	public static function append(b:ByteArray):void
	{
		if (!_header) writeHeader();
		_dataSize += b.length;
		_header.position = 3;
		_header.writeInt(_header.length);
		_header.position = 79;
		_header.writeInt(_dataSize);
		_header.position = _header.length - 1;
		_header.writeBytes(b);
	}
	
}
это пока что наработки, если кому интересно...
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 17.06.2008 в 20:33.
Старый 18.06.2008, 00:50
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А что мешает посмотреть мой WAV Player?

Старый 18.06.2008, 00:54
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ничего, а где смотреть? %)
о, все, пасиб, смотрю =)

Ха, кто бы мог подумать... единственное, спрятан SWFFormat... %) и не совсем понятно, как wave в итоге вставляется в SWF, но как-то не верится, что кто-то его в MP3 перекодировал
Почитал коменты... собственно, есть некоторые мысли по поводу того, как можно снять амплитуду (Timer сразу отпадает - он просто никогда в жизни не успеет... интервал между снимками меньше 1 миллисекунды, а таймер так быстро не умеет реагировать, да и вообще при значениях меньше 30 миллисекунд вудает погрешность около 10 миллисекунд... что как бы вообще ни в какие ворота...) Но можно пытаться в цикле проверять одинаковость снимков (если эта операция займет меньше 1/44 миллисекунды), что тоже сомнительно... тогда делать в несколько проходов... но опять же точность...
Вобщем, либо такой вариант, либо пытаться парсить и перезаписывать сам WAVE... тут тож не совсем понятно... ну, скажем, громче-тише еще можно придумать как посчитать... а вот наложения... я такое точно не потяну =(
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 18.06.2008 в 01:30.
Создать новую тему Ответ Часовой пояс GMT +4, время: 15:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
bytearray , export sound , samplerate , wave

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

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


 


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


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