2009-08-10 72 views
2

我在閃存中有幾個聲音對象,我想在這些聲音文件中混合不同的點來創建一個單一的傑作,並保存爲MP3。 我在網上看到過各種「調音臺」應用程序,並想知道要自己做什麼的區域。在閃存中混合多個聲音

+0

你必須使用as2嗎? – jedierikb 2009-08-12 16:11:44

+0

好吧,它的首選,作爲應用程序的一部分內置as2,但如果我想要做的事情不能在as2中完成,那麼我將不得不說服我的團隊中的其他人去as3的方式。如果有... – Irwin 2009-08-12 16:50:49

+1

AS3中的聲音API是AS2的重大飛躍。你最好建議跳轉。 – 2009-08-12 21:00:46

回答

1

要創建音樂或任何你想創建的音樂,你必須將你的wav和mp3文件導入你的音樂庫,然後將它們拖到電影區以將它們添加到你的時間線上。使用多個圖層來幫助組織它們。爲了測試你的歌曲,你可以按Enter鍵從你的前進到結束的任何幀。

如果您在時間線中選擇了聲音,請記住您可以應用一些效果。此外,在屬性面板上有一個「編輯」按鈕(默認情況下是底部),您可以使用該按鈕將音頻剪輯剪裁爲任何您需要的音頻剪輯。

一旦你完成了,你必須發佈你的Flash電影到SWF。然後,你就必須使用SWF到MP3轉換器像這樣的:

http://3d2f.com/programs/25-187-swf-to-mp3-converter-download.shtml

(我不是單證員這個軟件,它僅僅是一個例子)

如果你想從代碼中完成所有這些工作,使用ActionScript 2.0,您將面臨艱難的道路。

基本上,你必須建立一個數組,填滿你已經加載到電影中的修剪後的聲音字節。然後在你的onEnterFrame不得不打電話給他們在適當的時間:

(我沒有在所有測試此代碼,它只是給你一個基本的想法,大聲笑)

var sounds = new Array(); 
var s0 = new Sound(this); 
s0.attachSound("someLinkedSound0"); 
sounds.push({sound : s0, frame : 100}); 
var s1 = new Sound(this); 
s1.attachSound("someLinkedSound1"); 
sounds.push({sound : s1, frame : 200}); 
var s2 = new Sound(this); 
s2.attachSound("someLinkedSound2"); 
sounds.push({sound : s2, frame : 300}); 
var currentSound = 0; 

this.onEnterFrame = function(e) { 
    if(currentSound < sounds.length && sounds[currentSound].frame == _root.currentFrame) { 
     sounds[currentSound].start(0,1); 
     currentSound++; 
    } 
    frame++; 
} 

我示例使用導入到庫中的聲音並「鏈接」,但是您可以通過url加載聲音並進行一些修改。

如果由於您的應用程序的結構onEnterFrame沒有被調用,您也可以使用從setInterval調用的方法完成類似的事情。 我希望有所幫助。

0

讀了一下關於flash的一些信息SoundChannel,SoundSoundTransform class。所有你需要做的就是加載你不同的聲音(你有關於如何在我已經鏈接的Flash文檔中做到這一點的例子),並根據你的時間表播放聲音。每個聲音都可以在不同的頻道上播放,這樣就可以「混合」它們。在任何需要的時間維護一系列渠道,並隨時隨地做他們想做的事。

爲了節省這些成本,需要做更多的工作,但並非不可能。 Here您可以找到另一個將mp3保存爲swf的示例。其他方法我不能說我知道,但從我所看到的,你可以使用鍊金術並編譯LAME MP3 Encoder作爲閃存庫。您還需要一些後端,因爲您無法使用閃存下載文件。您必須將它們發送到服務器,然後服務器應該初始化下載。

1

對於在ActionScript 2中混合聲音,請看this link。這是對如何實現AS2混音的詳細解釋。接下來,您需要查看this link以獲取有關此主題的更多信息。

將聲音的混合版本作爲MP3儲存起來並不會直接來自AS2。你不得不求助於一些精心設計的服務器端腳本,該腳本知道什麼時候混合聲音開始和停止,並且該信息可以在服務器上生成MP3。整蠱,但並非不可能。

或者您可以切換到AS3,您可以create sound at runtime(例如向下滾動一下)並將結果保存爲字節流。