Показать сообщение отдельно
Старый 17.04.2013, 12:22
TWETTI вне форума Посмотреть профиль Отправить личное сообщение для TWETTI Найти все сообщения от TWETTI
  № 1  
Ответить с цитированием
TWETTI
 
Аватар для TWETTI

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
По умолчанию Как у распакованного звука узнать громкость 4 раза в секунду?

Подскажите, пожалуйста, как у распакованнного методом extract звука Sound, узнать громкость(от 0 до 1) 4 раза в секунду и записать значения в ByteArray?

Вот код, который я написал.
Код AS3:
private function generate():void
{
	// samples - распакованный звук
	samples.position = 0;
	step = samples.length / 4096;
	do
	{
		step--;
	}
	while (step % 4);
	var left:Number;
	var right:Number;
	var mono:Number;
	for (var c:int = 0; c < 4096; c++)
	{
		left = Math.abs(samples.readFloat());
		right = Math.abs(samples.readFloat());
		mono = Math.abs(Math.max(left, right)) + Math.abs(Math.min(left, right));
		samples.position = c * step;
		_results_bytes.writeFloat(mono); // _results_bytes - ByteArray с массивом громкостей.
	}
}
Но он записывает значения не 4 раза в секунду, а чаще.

Вот полный код, если надо: https://gist.github.com/subdan/5402384 Там громкость рисуется в Bitmap.