2012-02-21 54 views
0

我做在我的代碼如下:Sound.play()崩潰不帶參數

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

通常這應該導致聲音呼喚手柄...功能,當它想打,這樣我可以插入我自己生成的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; 
      } 
     } 
    } 
+0

對不起,也許我沒有看到它,但你想播放哪種聲音?因爲我看到你沒有源頭。 – 2012-02-21 15:00:13

+0

你可以分享'handlePlaybackSampleData'功能代碼嗎? – sch 2012-02-21 15:04:48

+0

我編輯它。另一個問題是,如果它工作,聲音播放太快了。但我會爲這個問題提出另一個話題。 – TheSHEEEP 2012-02-21 15:33:23

回答

0

要產生這樣的疑問得到一個「官方答案」,這裏發生了什麼:

採樣率是一個問題,因爲你可以看到在不同的question。解決這個問題也能解決這個問題。

不幸的是,我無法真正解釋如何。也許這只是一個稍微有點誇張的編譯,並重新啓動一切修復它。無論如何,它現在已經消失了。