2011-04-02 88 views

回答

8

您可以將相同的樣本多次寫入輸出緩衝區。

function downOctave(bytes:ByteArray):ByteArray 
     { 
      var returnBytes:ByteArray = new ByteArray(); 
      bytes.position = 0; 
      while(bytes.bytesAvailable > 0) 
      { 
       returnBytes.writeFloat(bytes.readFloat()); 
       returnBytes.writeFloat(bytes.readFloat()); 
       bytes.position -= 8; 
       returnBytes.writeFloat(bytes.readFloat()); 
       returnBytes.writeFloat(bytes.readFloat()); 

      } 
      return returnBytes; 
     } 

這音高移位是非常簡單和快速的和適用於閃光實時使用,但它確實改變在該聲音正在播放的速度。對於不改變持續時間的音高轉換,您需要使用基於傅立葉變換的方法。 Like this guy did here.

+0

這就是我所需要的,不能夠感謝你! – DLiKS 2011-04-02 19:30:40