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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 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.

Старый 17.04.2013, 13:16
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 2  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
так в чем проблема
Код AS3:
stage.frameRate = 4;
и
Код AS3:
addEventListener(Event.ENTER_FRAME, extractPart);
будет вызываться 4 раза в секунду
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

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

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
chamele0n, я не про это. У меня звук к примеру 60 секунд. Мне надо 60*4=240 значений громкости в виде массива.

Старый 17.04.2013, 13:27
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 4  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
а посмотрел тот код, так измени значение step
например вместо 4096 попробуй прописать 1024
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

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

Регистрация: Dec 2007
Адрес: Россия, Москва
Сообщений: 541
Отправить сообщение для TWETTI с помощью Skype™
Сам разобрался.
Код AS3:
while (samples.bytesAvailable > 88200)
{
	for (var i:uint = 0; i < 11025; i++)
	{
		var leftChannel:Number = Math.abs(samples.readFloat());
		var rightChannel:Number = Math.abs(samples.readFloat());
		var monoChannel:Number = Math.abs(Math.max(leftChannel, rightChannel)) + Math.abs(Math.min(leftChannel, rightChannel));
	}
				_results_bytes.push(monoChannel);
}

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

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

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


 


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


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