Hola, estoy con un inconveniente al desarrollar un karaoke.
Tengo una pista de audio en mp3 y necesito extraerla a un bytearray para luego mezclarla con la captura del micrófono, el problema es que al pasar el mp3 al bytearray, el audio se realentiza, exactamente a la mitad.
La pista dura 1:11 min, y el archivo que genero luego de extraer es de 2:22 min.
Imagino que tiene que ver con los canales (izquierdo y derecho), pero no tengo mucha experiencia trabajando con audio.
Esta es una parte del código:
Código AS3:
Ver original// Variables
var pista:Sound = new Pista(); // corresponde a un MP3 en la biblioteca
var pista_sound_channel:SoundChannel = new SoundChannel();
var pista_data:ByteArray;
var waveEncoder:WaveEncoder = new WaveEncoder();
// Lanzo la pista
pista_sound_channel = pista.play();
pista_sound_channel.soundTransform = new SoundTransform(1);
// Extraigo
pista_data = new ByteArray();
pista.extract(pista_data, (pista.length * 44.1), 1);
pista_data.position = 0;
// Almaceno el MP3 en el server...
var url:String = ""; // Path al PHP
req = new URLRequest(url);
wav_data = waveEncoder.encode(pista_data, 1);
req.requestHeaders = new Array(new URLRequestHeader("Content-Type", "audio/wav"));
req.contentType ="'application/octet-stream";
req.method = URLRequestMethod.POST;
req.data = wav_data;
loaderjp.load(req);
Saludos!