Показать сообщение отдельно
Старый 05.03.2016, 07:33
Cake_Eater вне форума Посмотреть профиль Отправить личное сообщение для Cake_Eater Найти все сообщения от Cake_Eater
  № 1  
Ответить с цитированием
Cake_Eater

Регистрация: Mar 2016
Сообщений: 2
По умолчанию Спектрограмма / Качество звука

Задумал написать одну ритм игру. Что-то вроде упрощенного Audio Surf. Для этого мне нужно в любой момент воспроизведения звука знать все его ритмы, чтобы с ними работать. Я уже смог найти код, который строит спектрограмму звука в любой момент.
Код AS3:
 
import flash.events.Event;
 
var url:String = "test.wav";
var request:URLRequest = new URLRequest(url);
var s:Sound = new Sound();
s.load(request);
var song:SoundChannel;
 
 
var ba:ByteArray = new ByteArray();
var gr:Sprite = new Sprite();
gr.x = 20;
gr.y = 200;
addChild(gr);
 
addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void
{
	SoundMixer.computeSpectrum(ba, true);
	var i:int;
	gr.graphics.clear();
	gr.graphics.lineStyle(0, 0xFF0000);
	gr.graphics.beginFill(0xFF0000);
	gr.graphics.moveTo(0, 0);
	var w:uint = 3;
	for (i=0; i<512 i++)
	{
		var t:Number = ba.readFloat();
		var n:Number = (t * 100);
		gr.graphics.drawRect(i*w, 0, w, -n);
	}
}
Но проблема в том что звук искажается при загрузке, и спектрограмма, следовательно, тоже.

Как максимально приблизить качество загружаемого звука к качеству mp3 файла?
ИЛИ
Как получить более четкую спектрограмму?

P.S. Вроде бы ещё можно использовать метод extract() для получения данных о mp3, но на выходе получается какая-то мелеберда, если знаете что он извлекает напишите пожалуйста