Flash聲音進階篇:NullSound技術-2

來源:互聯網
上載者:User
進階   這些結果是令人信服的,假如我們製作一個“無聲”版本(所有的動畫保持原狀,只刪除了所有的聲音)那麼輸出檔案大小為655kb 。如果我們比較一下兩個檔案的大小差異的話,結果說明採用str00方式的整個音效檔只佔用59kb!!!而採用傳統方式的話,音樂檔案將佔用595kb.

  進一步說明:如果有5到6個2,3秒的音效檔,構成1,2,3分鐘甚至更多時間,音樂檔案佔用的體積將低於70~80k.相對的,如果採用傳統方法處理的話,佔用檔案大小將是1MB甚至更多。

下面介紹一下工作原理:

   str0技術:

  首先,讓我們選擇一個盡量小的音效檔"NULLSOUND"。這個小的wav檔案裡面除了靜音啥也沒有,大概0.1秒長。我們可以用任何聲音編輯軟體來產生它。 然後我們把這個檔案放到timeline裡面,然後設定為stream方式,並設定迴圈次數以便聲音一直延長到Flash的結尾。我們只設定這個NULLSOUND檔案為stream方式的,其他聲音用層來組織,都設定成event方式。這樣,我們就可以把stream聲音的輸出品質設定成足夠低(ADPCM 5 kHz 2 bit)同時卻不影響整個音樂的音質,因為event方式的聲音可以設定高一些比如ADPCM 11 kHz 4 bit. 。

  請看下面的圖例:

圖1. str0技術裡面的主時間軸

圖2. 時間軸裡NULLSOUND聲音的設定

圖3. 匯出情況下的stream和event聲音音質設定

  我們可以微調一下上面的技術,從而使檔案體積更小,就是我們稱為str00技術:

   str00技術:

  我們把前面技術中,NULLSOUND的迴圈次數設定成1次,其他的保持不變。 這項技術是建立在flash的一個有趣的特性基礎上的: 如果時間上有個音效檔設定成stream方式,那麼flash在播放完這個音效檔後會繼續以stream模式播放聲音。也就是說,我們可以用這樣一個小的NULLSOUND音效檔作為一個開關,使整個播放器用stream模式播放聲音。這種stream播放模式可以使用"Stop All Sound"動作來關閉。使用這種方法,我們也可以在影片中靈活的切換stream模式或者是event模式,也就是可以在恒定幀率以及幀率可變模式中切換。

  下面的圖例表述了這種str00技術

圖4. 主時間軸上的NULLSOUND只迴圈一次

圖5. NULLSOUND聲音的設定

  str00技術的附帶說明:

  str00技術的唯一缺陷在於:假設使用者使用獨立播放器來播放flash,那麼如果使用者在播放時候敲斷行符號鍵,那麼flash將停止所有的聲音的播放,即使再按斷行符號繼續播放,其他聲音都能正常播放,而stream的聲音將不能播放,因為stream聲音的主要畫面格是在最前面,這樣的後果就是播放的stream模式被關閉了,也就是恒定幀率模式被關閉了。要避免這種錯誤,解決的方法就是安置一個隱形的按鈕來捕抓按鍵動作:

On ( Key: )
Play
End On

圖6. 隱形按鈕上的action設定

【譯者注】: 該文法為flash4文法,換成flash5以後版本文法如下:

on (keyPress "") {
play();
}


  同樣道理,獨立播放器裡的快顯功能表也應該在開始被禁用:

FS Command ("showmenu", "false")

圖7. 禁用快顯功能表的action設定

【譯者注】: 該文法為flash4文法,換成flash5以後版本文法如下:

fscommand ("showmenu", "false");

用了以上的設定以後,理論上flash將不會異常停止了。

【譯者總結】:

  該項技術應用背景: 背景音效需要多次迴圈,動畫和聲音需要保持同步,音質要求高,檔案體積要求盡量小的情況下。

  技巧:

  製作動畫過程中,可以把所有的聲音設定成stream模式,以便調整動畫和聲音完全符合。當確聲音動畫全部匹配以後,再把所有聲音設定成event,然後設定nullsound為stream以縮小檔案體積。

  有條件的情況下,盡量分割各項音樂元素,提取合并可以迴圈利用部分,然後利用Flash作為混音器來使用,這樣將有效減少輸出檔案的大小。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。