Я делаю следующее в своем коде:
_sound = new Sound();
_sound.addEventListener( SampleDataEvent.SAMPLE_DATA, handlePlaybackSampleData );
_soundChannel = _sound.play();
Обычно это должно приводить к тому, что Sound вызывает функцию handle ..., когда он хочет воспроизвести, чтобы я мог вставить свой собственный сгенерированный ByteArray длязвук.Но она даже не вызывает эту функцию, и иногда (!!!) происходит сбой вместо:
Error #2004: One of the parameters is invalid.
Я не знаю, почему это происходит.Во всех примерах это работает именно так.Это также не имеет особого смысла, так как все параметры в play () в любом случае являются необязательными.
Прежде чем это произойдет, я записываю вход микрофона в буфер, а затем хочу воспроизвести то, что записал,для чего все это.
Редактировать: вот функция:
public function handlePlaybackSampleData(p_sampleEvent:SampleDataEvent) :void
{
// Read data until either MAX_SAMPLES or all available samples are reached.
var i:int = 0;
var data :Number = 0;
while( i < 8192 )
{
if( _lastRecord.bytesAvailable )
{
data = _lastRecord.readFloat();
p_sampleEvent.data.writeFloat(data);
p_sampleEvent.data.writeFloat(data);
i++;
continue;
}
else
{
break;
}
}
}