Je tente de comprendre un peut les nouvelles fonctionnalités autour de la classe sound et j'ai pour l'instant ceci:
Action Script
var sound:Sound = new Sound();
var dynamicSound:Sound = new Sound();
var samples:ByteArray = new ByteArray();
sound.addEventListener( Event.COMPLETE, complete );
sound.load( new URLRequest( "sounds/sound.mp3" ) );
function complete( pEvt:Event ):void
{
dynamicSound.addEventListener( SampleDataEvent.SAMPLE_DATA, sampleData );
dynamicSound.play();
}
function sampleData( pEvt:SampleDataEvent ):void
{
samples.position = 0;
var len:Number = sound.extract( samples, 3000 );
var left:Number;
var right:Number;
samples.position = 0;
for ( var c:int=0; c < len; c++ )
{
left = samples.readFloat();
right = samples.readFloat();
pEvt.data.writeFloat( left );
pEvt.data.writeFloat( right );
}
}
Ça marche, mais dans la méthode extract, 3000 je l'ai obtenu empiriquement. Comment faire pour connaître le nombre de samples en fonction du son que l'on souhaite traiter?
Je donne un info que j'ai du mal à exploiter: The sample type is a 32-bit floating-point value (par canal)
Merci d'avance et bonne soirée
