没有参数的Sound.play()崩溃

时间:2012-02-21 14:20:55

标签: flash actionscript-3 audio audio-recording

我在我的代码中执行以下操作:

        _sound = new Sound();
        _sound.addEventListener( SampleDataEvent.SAMPLE_DATA, handlePlaybackSampleData );
        _soundChannel = _sound.play();

通常这应该导致Sound调用句柄...函数,当它想要播放时,我可以为声音插入我自己生成的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;
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

要让这个问题得到“正式回答”,以下是发生的事情:

采样率是一个问题,您可以在另一个question中看到。解决这个问题也解决了这个问题。

不幸的是,我无法解释如何。也许这只是一个稍微复杂的编译并重新启动修复它的一切。无论如何,它现在已经消失了。