我們知道在authorware中很容易引入聲音文件,一般情況下,我們都是將聲音錄制成一個雙聲道文件,其實,在多媒體軟件中的聲音主要包括人聲、音樂聲和音響效果聲,所以從音質上是基本聽不出來到底是單聲道還是雙聲道的,這樣我們就可以將一個雙聲道文件中錄制兩種不同的聲音,如在左聲道中錄制漢語聲音,而在右聲道中錄制英語聲音,然后通過控制windows 的聲音輸出左右聲道平衡來達到雙語的輸出。具體方法如下:
一、雙語聲音文件的制作
1、 啟動cooledit pro聲音處理軟件;
2、 新建一個wav文件,錄制一段漢語聲音,命名為ch.wav;
3、 新建一個wav文件,錄制一段英語聲音,命名為en.wav;
4、 新建一個wav文件,命名為chen.wav,切換ch.wav,選中左聲道(只有左聲道被選擇,它的顏色會發生變化)中的所有聲音內容,并將它拷貝到windows的剪貼板中,再切換到chen.wav,選中左聲道,按下ctrl+v鍵將漢語聲音粘貼到這個文件的左聲道中;
5、 依照步驟4的方法,切換en.wav,將它的右聲道中的聲音拷貝并粘貼到chen.wav文件的右聲道中。這樣就制作出了一個包含有兩種語言的聲音文件,下面的任務就是進行左右聲道的輸出平衡控制。
二、在程序中控制左右聲道的輸出平衡
1、加載動態鏈接庫文件:
(1)新建一個文件,文件名為“雙語輸出.a4p”;
(2)按ctrl+shift+f鍵,打開function窗口,選擇“動態音量控制.a4p”,點擊load鈕,打開budwav.u32文件(這個動態庫可以從http://www.mods.com.au/budapi上下載),并引入其中的wavenumdevices()、wavecansetlrvolume()和wavesetvolume()函數;
2、控制左右聲道的輸出平衡
(1) 放置一交互圖標于流程線上,命名為“選擇”;
(2) 再放置四個計算圖標于“選擇”圖標下,分別命名為“漢語”、“英語”、“平衡”和“手動設置”;
(3) 放置一音樂圖標于交互圖標下,將它命名為“chen”;
(4) 雙擊“漢語”計算圖標,在里面寫上:
r:=wavesetvolume(0,100,0)
mediaplay(@"chen")
(6) 雙擊“漢語”計算圖標,在里面寫上:
r:=wavesetvolume(0,0,100)
mediaplay(@"chen")
(7) 雙擊“平衡”計算圖標,在里面寫上:
r:=wavesetvolume(0,50,50)
(8) 雙擊“手動設置”計算圖標,在里面寫上:
jumpoutreturn("sndvol32.exe")
三、幾點說明:
1、可能有的機器的聲卡是不支持分離聲道的輸出的,因此增了一個手動設置按鈕,如果發現聲卡漢語或英語設置無效,則可以通過按下此鈕彈出windows聲音控制面板讓用戶自己手動進行設置,但這必須告訴用戶,設置左聲道輸出為漢語,設置右聲道輸出為英語;
2、函數wavesetvolume()的原型為 result := wavesetvolume( deviceid , leftvolume , rightvolume )其中,
deviceid為一般為0,即windows下第一個設備識別號;
leftvolume 和rightvolume分別為設置左右聲道音量,最大值為100,最小值為0,在選擇漢語時左聲道音量設置為100、右聲道音量設置為0,而在選擇英語時左聲道音量設置為0、右聲道音量設置為100,設置為平衡時分別為50;
3、程序sndvol32.exe是用于windows下的控制音量的,用戶雙擊任務欄上的喇叭小圖標就是啟動的這個程序,另外,這個程序還有一個參數/r,可以用于打開錄制控制。
4、 通過上述的方法,就可以進行語言的選擇了,而且絲毫不增大多媒體程序的大小,如果您嫌這個wav文件太大的話,也可以將它轉化為超級音頻格式的文件(swa文件),但是要注意的是,千萬不能選中convert stereo to mono選項,否則……如果您需要動態地控制音量的大小,可以看一看我寫的另一篇文章《在authorware中動態設置音量大小》,那一篇文章對動態地控制音量的大小的方法作了詳細的介紹,并有源程序及圖片供參考。
(1620字)
新聞熱點
疑難解答