亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用Director制作歌曲學(xué)習(xí)課件

        2015-04-29 06:04:46韓建彬
        計(jì)算機(jī)時(shí)代 2015年11期

        韓建彬

        摘 要: 利用Director的媒體集成和腳本編程能力,開發(fā)了學(xué)習(xí)歌曲演唱的多媒體課件。通過(guò)聲音文件中的線索點(diǎn)及其事件處理過(guò)程,實(shí)現(xiàn)了任意播放某一句演唱的功能;將定時(shí)器與蒙版相結(jié)合,創(chuàng)造了動(dòng)態(tài)蒙版,實(shí)現(xiàn)了歌詞同步提示功能。

        關(guān)鍵詞: Director; 線索點(diǎn); 動(dòng)態(tài)蒙版; 定時(shí)器

        中圖分類號(hào):TP317 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2015)11-54-04

        Abstract: Director has the comprehensive capabilities in multi-media integration and script programming, the courseware for learning songs can be developed with this platform. By the cue points in an audio file and the process of cue passed, any section of the song can be played. By the timer, the sprite mask can be changed in a specific rhythm synchronously, and the lyrics can be prompted thereby.

        Key words: director; cue point; dynamic mask; timer

        0 引言

        多媒體課件在計(jì)算機(jī)輔助教學(xué)(CAI)中有著廣泛應(yīng)用,它能通過(guò)豐富的信息傳遞手段和靈活的人機(jī)交互方法,使原本機(jī)械、重復(fù)、枯燥的教學(xué)過(guò)程變成雙向互動(dòng)的信息交流,極大地改變?nèi)藗兊膶W(xué)習(xí)方式和過(guò)程[1]。Director作為專業(yè)級(jí)的多媒體制作軟件,使我們?cè)趶?fù)雜交互課件的開發(fā)中如虎添翼。無(wú)論是對(duì)文、圖、聲、像的處理,還是在交互控制方面,Director都有著卓越的性能,其內(nèi)部集成的Lingo語(yǔ)言和對(duì)JavaScript的支持更使深度開發(fā)成為可能[2]。

        歌曲學(xué)習(xí)課件就是充分利用Director的媒體集成和交互控制優(yōu)勢(shì),實(shí)現(xiàn)原唱欣賞、逐句教唱、重點(diǎn)教唱和整曲練習(xí)等功能,并能進(jìn)行歌詞的同步提示。課件充分發(fā)揮了多媒體的作用,為歌曲學(xué)習(xí)提供了完善的教學(xué)功能,既可輔助教師授課,也可用于個(gè)人自學(xué)。

        1 系統(tǒng)總體結(jié)構(gòu)

        利用Director制作的多媒體作品稱為電影(Movie),舞臺(tái)是顯示電影內(nèi)容的窗口,幀是組織電影內(nèi)容的基本單位。在電影中,通過(guò)設(shè)置多媒體素材的屬性來(lái)控制內(nèi)容的顯示效果,通過(guò)調(diào)整所占的幀數(shù)來(lái)控制顯示的時(shí)間,而復(fù)雜的交互功能則主要通過(guò)編寫Lingo或JavaScript腳本來(lái)實(shí)現(xiàn)。

        在課件的主界面中,以圖片的形式顯示詞曲,并在界面下部放置主要的功能按鈕,具體如圖1所示?!霸蕾p”用于完整播放歌曲的原唱,供學(xué)習(xí)者欣賞。“逐句教唱”主要是模仿老師的教學(xué)過(guò)程,當(dāng)課件在播放完一句原唱之后,會(huì)根據(jù)內(nèi)容長(zhǎng)短留出一定的時(shí)間,供學(xué)習(xí)者跟唱,然后再按順序播放下一句。進(jìn)入“重點(diǎn)教唱”功能后,界面上的每一句歌詞都會(huì)成為一個(gè)獨(dú)立的交互熱點(diǎn),通過(guò)鼠標(biāo)點(diǎn)擊界面上的某一句歌詞,可以進(jìn)行該句的反復(fù)教唱?!罢毩?xí)”用于播放歌曲的伴奏音樂(lè),同時(shí)進(jìn)行歌詞的同步提示,供學(xué)習(xí)者進(jìn)行練習(xí)。

        該課件的邏輯結(jié)構(gòu)如圖2所示。在Director中,電影默認(rèn)為按照時(shí)間軸從第一幀順序向后播放,為了實(shí)現(xiàn)課件中的邏輯功能,需要應(yīng)用腳本語(yǔ)言控制電影的播放順序,并實(shí)現(xiàn)與使用者的有效交互。

        在電影編排表(Score)中,將歌曲圖片和按鈕分別放置于精靈通道中,均從通道的第一幀開始,使課件一打開就展示出完整的界面。雙擊腳本通道的第一幀,打開幀腳本編輯窗口,在“on exitFrame me”行為中寫入“go to the frame”語(yǔ)句,使課件一開始就暫停于第一幀,等待用戶的鼠標(biāo)點(diǎn)擊,以轉(zhuǎn)入相應(yīng)的功能模塊。

        從圖2中可以看出,在課件的各模塊中,聲音播放和歌詞的同步提示都是其核心功能,也是課件制作中的難點(diǎn),下面重點(diǎn)說(shuō)明兩者的實(shí)現(xiàn)方法。

        2 聲音的分句播放

        在Director中,聲音播放有兩種方式。一是利用編排表中的聲音通道,如課件中背景音樂(lè)的播放一般就采用此種方式。先將聲音文件導(dǎo)入演員表,然后再拖放到編排表的聲音通道中,通過(guò)調(diào)整聲音精靈的位置和所占幀數(shù)來(lái)控制聲音的播放時(shí)機(jī)和時(shí)長(zhǎng)。但這種方式只能從開頭順序播放,不能靈活播放其中的某一片段,因此只適用于聲音的簡(jiǎn)單播放。二是通過(guò)Lingo腳本播放,通過(guò)聲音的木偶化,使聲音的播放不再受編排表的制約,而完全由Lingo語(yǔ)句來(lái)控制。通過(guò)Director中聲音演員的屬性和方法,可以以毫秒為單位,精確設(shè)定播放的開始和結(jié)束點(diǎn),從而靈活播放歌曲中的某一片段。在“逐句教唱”和“重點(diǎn)教唱”模塊中,正是利用這一功能實(shí)現(xiàn)了分句教學(xué)和練習(xí)。

        2.1 用線索點(diǎn)標(biāo)記時(shí)間

        在Director中,線索點(diǎn)(Cue Point)是指在聲音或視頻文件中人為添加的時(shí)間標(biāo)記信息[3]。線索點(diǎn)信息與媒體數(shù)據(jù)保存在同一文件中,通過(guò)聲音文件中的線索點(diǎn),可以精確定位到音視頻文件中的某一位置。為了實(shí)現(xiàn)分句播放,要在歌曲中每一句的開始和結(jié)束位置都添加線索點(diǎn)。

        音頻文件中的線索點(diǎn)一般通過(guò)GoldWave、CoolEdit或Adobe Audition等音頻編輯軟件進(jìn)行設(shè)定。在這些軟件中,線索點(diǎn)被稱為提示點(diǎn)、標(biāo)記點(diǎn)等,但能起到同樣的作用。以GoldWave為例,“編輯”菜單中的“提示點(diǎn)”命令組用于添加和編輯提示點(diǎn)。在GoldWave中打開歌曲,在每一句的開頭和結(jié)尾添加提示點(diǎn),分別命名為Head1、Head2、……和End1、End2、……。因?yàn)镸P3格式不支持線索點(diǎn),所以添加后要保存為WAV格式。

        此外,還要制作兩個(gè)特殊的音頻文件,第一個(gè)是包含口令“唱”的聲音文件,用于提示學(xué)習(xí)者跟唱,并在靠近結(jié)尾處添加名為“BeginMark”的線索點(diǎn);第二個(gè)是一小段靜音的音頻文件,并在其中設(shè)置一個(gè)名為“EndMark”的線索點(diǎn)。這兩個(gè)文件中的線索點(diǎn)主要用作關(guān)閉和恢復(fù)原唱聲音的標(biāo)記。

        2.2 分句播放的實(shí)現(xiàn)

        分句播放是利用聲音通道的queue()方法來(lái)實(shí)現(xiàn),該方法用于為聲音通道建立播放隊(duì)列,通過(guò)member、startTime和endTime參數(shù),可以指定播放音頻文件的特定片段。其中的startTime、endTime參數(shù)來(lái)自于聲音演員的cuePointTimes屬性,該屬性返回音頻文件中所有線索點(diǎn)的列表。

        在此以“逐句教唱”功能的實(shí)現(xiàn)來(lái)對(duì)主要代碼進(jìn)行說(shuō)明。為了在不同代碼段中共享音頻的線索點(diǎn)數(shù)量和當(dāng)前音量設(shè)置,需要在電影腳本中聲明兩個(gè)全局變量,cuePassedCount用于保存歌曲中索引點(diǎn)的總數(shù),currentVol用于保存當(dāng)前聲音通道的音量。在startMovie事件中,對(duì)兩個(gè)變量進(jìn)行初始化,分別賦值為0和Sound(1).volume。

        在“逐句教唱”按鈕的腳本中,通過(guò)循環(huán)結(jié)構(gòu)建立逐句播放隊(duì)列。在演員表中,將導(dǎo)入的歌曲命名為Song,包含“BeginMark”線索點(diǎn)的音頻命名為Sing,包含“EndMark”線索點(diǎn)的音頻命名為Over。

        3 動(dòng)態(tài)字幕的實(shí)現(xiàn)

        所謂動(dòng)態(tài)字幕,就是與演唱同步,將歌詞的文字由黑色變?yōu)榧t色,用于提示演唱的進(jìn)度。這一效果主要通過(guò)精靈蒙版(Mask)來(lái)實(shí)現(xiàn)。在Director中,蒙版功能還不夠完善,最突出的一點(diǎn)就是,不能在編排表中直接對(duì)蒙版的屬性進(jìn)行改變。因此,需要通過(guò)Lingo腳本對(duì)蒙版進(jìn)行控制。

        3.1 制作歌詞演員和蒙版

        根據(jù)主界面中的歌曲圖片,為每句歌詞制作一個(gè)紅色文字的JPG圖片,第一句的圖片如圖3所示。然后再制作一個(gè)與該圖片相同大小的純白色圖片,保存成BMP格式,作為歌詞的蒙版。

        將制作的歌詞和蒙版圖片導(dǎo)入演員表中,分別命名為lyric1、lyric2……和mask1、mask2……,每個(gè)蒙版都必須緊跟在相應(yīng)的歌詞圖片之后,這是Director對(duì)蒙版的特定要求。把歌詞演員加入到編排表的第一幀,并與背景上的相應(yīng)文字對(duì)齊。最后將歌詞精靈的墨水效果設(shè)為“Mask”,使其變?yōu)橥耆该鳌?/p>

        3.2 與演唱同步填充蒙版

        在on cuePassed過(guò)程中,通過(guò)IF語(yǔ)句進(jìn)行判斷,當(dāng)經(jīng)過(guò)每一句開始處的線索點(diǎn)時(shí),就創(chuàng)建一個(gè)間隔為0.1秒的定時(shí)器。

        --如果線索點(diǎn)是以Head開頭,就創(chuàng)建定時(shí)器

        if name starts "Head" then

        --獲取剛經(jīng)過(guò)的線索點(diǎn)在列表中的序號(hào)

        currentPos=cuePointNameList.getPos(name)

        --計(jì)算出當(dāng)前正在演唱第幾句

        sentenceOrder=(currentPos+1)/2

        --計(jì)算當(dāng)前句的時(shí)間長(zhǎng)度

        persistedTime=cuePointTimeList[currentPos+1]

        -cuePointTimeList[currentPos]

        --計(jì)算需要填充的蒙版的名稱

        currentMask="mask" & sentenceOrder

        --獲得蒙版的寬度和高度

        maskWidth=member(currentMask).image.width

        maskHeight=member(currentMask).image.height

        --計(jì)算每次填充的寬度增量

        fillIncremant=maskWidth/(persistedTime/100)

        --啟動(dòng)定時(shí)器

        myTimer=timeOut().new("fillTimer", 100, #fillProc)

        --將記錄定時(shí)器觸發(fā)次數(shù)的變量歸零

        timeOutCount=0

        end if

        在定時(shí)器過(guò)程中,與演唱相同步,自左向右逐漸用黑色填充蒙版,使紅色的歌詞顯示出來(lái)。

        on fillProc

        --如果蒙版已完全填充為黑色,

        if (maskWidth-timeOutCount*fillIncremant)<=0 then

        --將記錄定時(shí)器觸發(fā)次數(shù)的變量歸零

        timeOutCount=0

        --關(guān)閉定時(shí)器

        forget(timeout("fillTimer"))

        end if

        --計(jì)算本次需要填充的區(qū)域

        fillArea=rect(0, 0, timeOutCount*fillIncremant,

        maskHeight)

        --用黑色填充該區(qū)域

        member(currentMask).image.fill(fillArea,rgb(0, 0, 0))

        --定時(shí)器觸發(fā)次數(shù)加1

        timeOutCount=timeOutCount+1

        end timeout

        通過(guò)以上方法,就能在播放過(guò)程中逐步顯示紅色的歌詞,從而產(chǎn)生同步動(dòng)態(tài)提示的效果。

        4 結(jié)束語(yǔ)

        該課件充分利用Director中的音頻線索點(diǎn)和動(dòng)態(tài)蒙版技術(shù),實(shí)現(xiàn)了對(duì)歌曲演唱學(xué)習(xí)的有效支持,提高了學(xué)習(xí)效率和靈活性,體現(xiàn)了CAI的重要作用。但是該課件只是完成了教與學(xué)的功能,還需增加學(xué)習(xí)效果評(píng)價(jià)功能,通過(guò)將學(xué)生的聲音與原唱進(jìn)行對(duì)比,給出具體評(píng)價(jià),以幫助學(xué)生更好地檢驗(yàn)和改進(jìn)自己的學(xué)習(xí)。

        參考文獻(xiàn)(References):

        [1] 張豪,何方.Director交互式多媒體開發(fā)從新手到高手[M].清

        華大學(xué)出版社,2008.

        [2] 古成中,吳新躍.基于Director的交互式虛擬仿真系統(tǒng)[J].工

        程設(shè)計(jì)學(xué)報(bào),2007.14(4):282-285

        [3] 顧煥國(guó),歐漢彬.Director中Cue Point聲音同步控制技術(shù)[J].

        中國(guó)醫(yī)學(xué)教育技術(shù),2003.17(5):291-294

        日本一级二级三级在线| 日本精品一区二区在线看| 久久99精品波多结衣一区| 无码精品人妻一区二区三区98| 丰满少妇高潮在线观看| 国产av精品一区二区三区不卡| 中文字幕一区二区三区| 男女调情视频在线观看| 国产在线观看精品一区二区三区| 99国产精品欲av麻豆在线观看| 老岳肥屁熟女四五十路| 国产av综合网站不卡| 少妇真实被内射视频三四区| 亚洲精品第一国产综合精品| 极品少妇被猛的白浆直喷白浆| 国产人妻久久精品二区三区特黄| 人妻aⅴ无码一区二区三区| 日本免费人成视频播放| 久久精品国产6699国产精| 久久精品国产成人午夜福利| 久久综合久中文字幕青草| 中文字幕乱码亚洲在线| 男人吃奶摸下挵进去啪啪软件| 久久国产色av免费观看| 玩弄放荡人妻少妇系列| 亚洲国产精品一区二区第四页| 999久久66久6只有精品| 蜜桃av噜噜一区二区三区香| 日本办公室三级在线观看| 亚洲av不卡一区男人天堂| 亚洲国产精品毛片av不卡在线| 免费视频一区二区| 产精品无码久久_亚洲国产精| 日本国产精品高清在线| 成人国产激情自拍视频| 蜜臀av在线播放一区二区三区| 成人综合婷婷国产精品久久蜜臀| 极品熟妇大蝴蝶20p| 少妇特殊按摩高潮不断| 精品中文字幕在线不卡| 国产一二三四2021精字窝|