Flash AS3.0動(dòng)畫程序設(shè)計(jì)案例教程課件第8章_第1頁
Flash AS3.0動(dòng)畫程序設(shè)計(jì)案例教程課件第8章_第2頁
Flash AS3.0動(dòng)畫程序設(shè)計(jì)案例教程課件第8章_第3頁
Flash AS3.0動(dòng)畫程序設(shè)計(jì)案例教程課件第8章_第4頁
Flash AS3.0動(dòng)畫程序設(shè)計(jì)案例教程課件第8章_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第8章 聲音和視頻處理FlashAS3.0Sound類和Microphone類外部聲音處理嵌入聲音處理聲音流處理

Video類、NetStream類、Camera類視頻回放控制視頻提示點(diǎn)視頻元數(shù)據(jù)8.1聲音處理8.1.1處理聲音簡(jiǎn)介AS3.0和FlashPlayer支持以mp3格式存儲(chǔ)的聲音文件。

在ActionScript中處理聲音時(shí),使用flash.media包中的類。使用Sound類,可以加載聲音文件并開始回放以獲取對(duì)音頻信息的訪問。聲音開始播放后,F(xiàn)lashPlayer提供對(duì)SoundChannel對(duì)象的訪問。由于加載的音頻文件只能是用戶計(jì)算機(jī)上播放的幾種聲音之一,因此,播放的每種的聲音使用自己的SoundChannel對(duì)象;混合在一起的所有SoundChannel對(duì)象的組合輸出是實(shí)際通過計(jì)算機(jī)揚(yáng)聲器播放的聲音。可以使用SoundChannel實(shí)例來控制聲音的屬性以及停止回放。最后,如果要控制組合音頻,可以通過SoundMixer類對(duì)混合輸出進(jìn)行控制。8.1.2加載外部聲音文件

Sound類的每個(gè)實(shí)例可加載并觸發(fā)特定聲音資源的回放。應(yīng)用程序無法重復(fù)使用Sound對(duì)象來加載多種聲音。如果它要加載新的聲音資源,則應(yīng)創(chuàng)建一個(gè)新的Sound對(duì)象。varreq:URLRequest=newURLRequest("click.mp3");vars:Sound=newSound(req);如何在完成加載后播放聲音:

importflash.events.Event;importflash.media.Sound;import.URLRequest;vars:Sound=newSound();s.addEventListener(Event.COMPLETE,onSoundLoaded);varreq:URLRequest=newURLRequest("bigSound.mp3");s.load(req);functiononSoundLoaded(event:Event):void

{varlocalSound:Sound=event.targetasSound;localSound.play();}8.1.3處理嵌入的聲音

Flash設(shè)計(jì)工具可導(dǎo)入多種聲音格式的聲音并將其作為元件存儲(chǔ)在庫中。然后,可以將其分配給時(shí)間軸上的幀或按鈕狀態(tài)的幀,通過行為來使用聲音,或直接在ActionScript代碼中使用它們。vardrum:DrumSound=newDrumSound();varchannel:SoundChannel=drum.play();8.1.4處理聲音流文件如果在加載聲音文件或視頻文件數(shù)據(jù)的同時(shí)回放該文件,則認(rèn)為是流式傳輸。SoundMixer.bufferTime屬性表示FlashPlayer在允許播放聲音之前應(yīng)收集多長時(shí)間的聲音數(shù)據(jù)(以毫秒為單位)。importflash.media.Sound;importflash.media.SoundLoaderContext;import.URLRequest;vars:Sound=newSound();varreq:URLRequest=newURLRequest("bigSound.mp3");varcontext:SoundLoaderContext=newSoundLoaderContext(8000,true);s.load(req,context);s.play();8.1.5播放聲音播放加載的聲音非常簡(jiǎn)便,只需為Sound對(duì)象調(diào)用Sound.play()方法.在回放期間執(zhí)行這些操作,使用SoundChannel、SoundMixer和SoundTransform類。

8.1.6處理聲音元數(shù)據(jù)使用mp3格式的聲音文件可以采用ID3標(biāo)簽格式來包含有關(guān)聲音的其它數(shù)據(jù)。并非每個(gè)mp3文件都包含ID3元數(shù)據(jù)。

importflash.events.Event;importflash.media.ID3Info;importflash.media.Sound;vars:Sound=newSound();s.addEventListener(Event.ID3,onID3InfoReceived);s.load("mySound.mp3");functiononID3InfoReceived(event:Event){varid3:ID3Info=event.target.id3;trace("ReceivedID3Info:");for(varpropName:Stringinid3){trace(propName+"="+id3[propName]);}}

8.1.7訪問原始聲音數(shù)據(jù)使用SoundMputeSpectrum()方法,應(yīng)用程序可以讀取當(dāng)前所播放的波形的原始聲音數(shù)據(jù)。

8.2捕獲麥克風(fēng)輸入應(yīng)用程序可通過Microphone類連接到用戶系統(tǒng)上的麥克風(fēng)或其它聲音輸入設(shè)備.8.2.1訪問麥克風(fēng)Microphone類沒有構(gòu)造函數(shù)方法。相反,應(yīng)使用靜態(tài)Microphone.getMicrophone()方法來獲取新的Microphone實(shí)例.varmic:Microphone=Microphone.getMicrophone();

使用Ms屬性或Microphone.getMicrophone()方法來檢查用戶是否安裝了聲音輸入設(shè)備。8.2.2將麥克風(fēng)音頻傳送到本地?fù)P聲器varmic:Microphone=Microphone.getMicrophone();mic.setUseEchoSuppression(true);mic.setLoopBack(true);

8.2.3更改麥克風(fēng)音頻Microphone.rate屬性表示以千赫(kHz)為單位測(cè)量的音頻采樣率。

8.2.4檢測(cè)麥克風(fēng)活動(dòng)Microphone類的以下三個(gè)屬性用于監(jiān)視和控制活動(dòng)檢測(cè):activityLevel只讀屬性指示麥克風(fēng)檢測(cè)的音量,范圍從0到100。silenceLevel屬性指定激活麥克風(fēng)并調(diào)度ActivityEvent.ACTIVITY事件所需的音量。silenceLevel屬性也使用從0到100的范圍,默認(rèn)值為10。silenceTimeout屬性描述活動(dòng)級(jí)別處于靜音級(jí)別以下多長時(shí)間(以毫秒為單位)后,才會(huì)調(diào)度ActivityEvent.ACTIVITY事件以指示麥克風(fēng)現(xiàn)在處于靜音狀態(tài)。silenceTimeout默認(rèn)值是2000。8.3案例——mp3播放器程序8.3.1案例任務(wù)描述本案例設(shè)計(jì)一個(gè)mp3音樂播放器程序,要求從列表中選擇要播放的音樂片段文件來播放。程序要求,在播放過程中,可以執(zhí)行暫停、快進(jìn)、快退、停止、回退至首、快進(jìn)至底、循環(huán)播放等功能操作,并顯示當(dāng)前音樂片段的播放進(jìn)度。8.3.2操作流程

程序功能演示;

學(xué)生動(dòng)手練習(xí).8.3.3案例小結(jié)本案例實(shí)現(xiàn)的是對(duì)外部聲音文件的加載處理、播放控制等處理聲音的基本功能操作。

AS3.0的聲音系統(tǒng)由多個(gè)協(xié)作的類構(gòu)成,F(xiàn)lashPlayer事件系統(tǒng)用來傳遞聲音加載和播放的狀態(tài)。Sound對(duì)象包含聲音數(shù)據(jù),能夠加載聲音;Soundchannel代表Sound對(duì)象的音頻輸出;SoundMixer控制所有聲音的整體輸出。

Sound能夠嵌在SWF內(nèi)、從本地文件加載,或者通過Web從外部文件經(jīng)過文件流傳過來。8.4案例——聲音波紋顯示程序8.4.1案例任務(wù)描述本案例設(shè)計(jì)一個(gè)程序,實(shí)時(shí)轉(zhuǎn)化正播放MP3歌曲的頻譜數(shù)據(jù)為波形圖。程序?qū)χ付ㄕ诓シ诺母枨鶰P3文件,使用SoundMixer類在任意時(shí)刻即時(shí)地計(jì)算所播放聲音的頻譜數(shù)據(jù),從而轉(zhuǎn)化為可視化波形圖形。8.4.2操作流程程序功能演示;

學(xué)生動(dòng)手練習(xí).8.4.3案例小結(jié)本案例是通過SoundMIxer的computeSpectrum()方法提出實(shí)時(shí)播放的聲音頻譜數(shù)據(jù),再使用Graphic類進(jìn)行圖形繪制,從而得到歌曲的實(shí)時(shí)波形圖。

AS3.0處理的MP3聲音中,如包含ID3數(shù)據(jù),則其為MP3歌曲的詳細(xì)信息,例如藝術(shù)家、流派、歌曲名稱。這些信息可以通過歌曲的id3屬性訪問。靜態(tài)的SoundMixer類包含的computespectrum()方法,將歌曲信息計(jì)算為一組數(shù)值,常常用來創(chuàng)建歌曲的可視化效果。8.5視頻處理FLV文件格式包含用FlashPlayer編碼以便于傳送的音頻和視頻數(shù)據(jù)。8.5.1Video類在項(xiàng)目中使用Video有多種不同方法:使用NetConnection和NetStream類動(dòng)態(tài)加載FLV并在Video對(duì)象中顯示視頻;從用戶攝像頭捕獲輸入;使用FLVPlayback組件。8.5.2加載視頻文件使用NetStream和NetConnection類加載視頻是一個(gè)多步驟過程.8.5.3控制視頻回放

NetStream類提供了四個(gè)用于控制視頻回放的主要方法:pause():暫停視頻流的回放。如果視頻已經(jīng)暫停,則調(diào)用此方法將不執(zhí)行任何操作。resume():恢復(fù)回放暫停的視頻流。如果視頻已播放,則調(diào)用此方法將不執(zhí)行任何操作。seek():搜尋最接近指定位置(從流的開始位置算起的偏移量,以秒為單位)的關(guān)鍵幀。togglePause():暫?;蚧謴?fù)流的回放。8.5.4流式傳輸視頻文件若要流式傳輸FlashMediaServer中的文件,可以使用NetConnection和NetStream類連接到遠(yuǎn)程服務(wù)器實(shí)例并播放指定的流。8.5.5提示點(diǎn)使用ActionScript與在創(chuàng)建FLV文件時(shí)嵌入到FLV文件中的提示點(diǎn)進(jìn)行交互,也可以與用ActionScript創(chuàng)建的提示點(diǎn)進(jìn)行交互。

8.5.6使用視頻元數(shù)據(jù)8.6捕獲攝像頭輸入8.6.1Camera類簡(jiǎn)介

Camera類包括多個(gè)有用的方法和屬性,通過這些方法和屬性可以使用Camera對(duì)象。例如,靜態(tài)的Cs屬性包含當(dāng)前安裝在用戶計(jì)算機(jī)上的攝像頭的名稱數(shù)組。也可以使用name屬性顯示當(dāng)前處于活動(dòng)狀態(tài)的攝像頭的名稱。8.6.2在屏幕上顯示攝像頭內(nèi)容varcam:Camera=Camera.getCamera();varvid:Video=newVideo();vid.attachCamera(cam);addChild(vid);8.6.3設(shè)計(jì)攝像頭應(yīng)用程序編寫需要連接到用戶攝像頭的應(yīng)用程序時(shí),需要在代碼中考慮以下事項(xiàng):檢查用戶當(dāng)前是否安裝了攝像頭。檢查用戶是否顯式允許FlashPlayer訪問其攝像頭。

8.6.4連接到用戶攝像頭varcam:Camera=Camera.getCamera();varvid:Video=newVideo();vid.attachCamera(cam);addChild(vid);8.6.5驗(yàn)證是否已安裝攝像頭8.6.6檢測(cè)攝像頭的訪問權(quán)限8.6.7監(jiān)視回放條件8.7案例——FLV視頻自動(dòng)播放程序8.7.1案例任務(wù)描述本案例設(shè)計(jì)一個(gè)程序,實(shí)現(xiàn)指定的視頻文件列表自動(dòng)順序播放。程序中對(duì)XML文件中羅列的存儲(chǔ)指定文件夾中的若干個(gè)FLV視頻文件,依據(jù)先后順序,逐個(gè)完成播放。在播放過程中,可以控制視頻播放的暫停、停止、播放,以及快進(jìn)、快退等功能操作,并且可以調(diào)整音量的大小。8.7.2操作流程程序功能演示;

學(xué)生動(dòng)手練習(xí).8.7.3案例小結(jié)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論