2013-12-20 52 views
5

我正在使用ActionScript處理Flash Mobile中的項目。我有一個壓縮的wav文件,我需要能夠在按鈕按鈕操作中按需要進行序列化和播放。以下是壓縮wav文件的代碼。如何在Flash Mobile中播放壓縮的波形文件

   mic.removeEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler); 
       btnRecord.setStyle("icon", recOff); 
       sampleCount++; 

       // save the raw PCM samples as a bare WAV file 
       var wav:ByteArray = new ByteArray(); 
       var writer:WAVWriter = new WAVWriter(); 
       writer.numOfChannels = 1; 
       writer.sampleBitRate = 16; 
       writer.samplingRate = 11025; 
       samples.position = 0; 
       writer.processSamples(wav, samples, 11025, 1); 
       wav.position = 0; 

       // zip the WAV file 
       var fzip:FZip = new FZip(); 
       fzip.addFile(name + sampleCount.toString(), wav); 
       var zip:ByteArray = new ByteArray(); 
       fzip.serialize(zip); 
       var recSpot:Object = { 
         id: null, 
         audio: zip, 
         name: "New Audio File " + newRecNum, 
         existsdb: "false" 
       }; 
       newRecNum++; 
       recordings.addItem(recSpot); 
      } 

我該怎麼玩這個文件,真的沒有必須播放一個壓縮文件之前。

回答

4

我不熟悉WAVWriter(這可能有點旁邊),但這是我所知道的。

首先,由於壓縮的性質,你不能(據我所知)播放壓縮音頻文件,句點。你需要先解壓縮它。

快速谷歌搜索出現了THIS AS3 TUTORIAL與FZIP解壓縮。示例程序使用的是.PNG,但我會假設你可以調整它以與之前壓縮的原始.WAV文件一起工作。跳到實際代碼的第5步。 (你需要重寫它與你的接口工作,效果顯着。)

您不需要在步驟5 DataProvider的變量,因爲這是在組件,具體。你需要將你的數據加載到別的東西上。如果您的播放WAV文件的方法是像我這樣的事情(我用的是as3WAVSound class),你可能會想將數據加載到ByteArray和漁翁得利的那個。

你也可能不會需要在for循環,他在步驟10中,作爲似乎是創建ZIP只有一個WAV文件的代碼。這大大簡化了事情。

無論如何,我希望,回答您的問題!