麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 媒體動畫 > 正文

Authorware綜合技巧:random循環選擇播放midI背景音樂

2024-09-08 19:25:13
字體:
來源:轉載
供稿:網友
  我們在上面介紹的“循環播放midi背景音樂”范例中只能播放一首midi音樂對象,這樣顯的比較單調,如果我們要實現多首midi背景音樂的隨機循環選擇播放,能實現嗎?答案是肯定的。

  在這里我們要介紹另外一個外部函數a5wmme.u32。這個函數包括各種多媒體的播放控制函數,如動畫、cd、midi、wav等的控制函數,其中我們可以利用的控制midi音樂播放的函數有:

midipause()

midiplay(filename, tempo, wait)

midiplaying()

midiplaysegment(filename, tempo, fromseconds, forseconds, wait)

midiresume()

midistop()

a5wmme.u32對midi音樂的控制函數比起midiloop.u32可就強大多了。

  在本范例中,有兩個核心問題:一是如何實現隨機選擇不同的midi音樂的問題,二是如何讓midi循環播放。解決第一個問題的方法是以所有要播放的midi聲音文件名“創建”一個播放列表,這里“創建”的列表并不是真正存在的播放列表,而是通過系統函數“catalog”將存放midi音樂的文件夾中的文件名以字符串的形式賦給變量,即所謂的播放列表,最后通過系統函數“random”隨機選擇“播放列表”中的midi文件進行播放。而解決第二個問題的方法是利用了永久型的條件交互的一點技巧而已。一起來看看如何實現吧!

1、 執行界面預覽,如圖3.4



圖3.4 范例程序執行效果

2、 程序的流程圖如圖3.5



圖3.5 范例程序流程圖
3、操作步驟:

1) 新建一個文件,并調入外部函數a5wmme.u32的相關擴展函數:

midiplay(filename, tempo, wait)

這個函數的功能即播放指定的midi音樂文件,其中“filename”參數即指定播放的midi音樂文件名;“tempo”參數是播放midi的速率,例如tempo =100表示以正常的速率播放midi;“wait”參數是播放midi的等待時間,例如wait=0即為立刻播放指定的midi音樂。

midiplaying()

判斷當前是否正在播放midi音樂,如果條件為真則返回“1”,條件為假則返回“0”

midistop()

停止當前正在播放的midi音樂

2) 設置屏幕大小和背景,如圖3.6和圖3.7所示



圖3.6 設置演示窗口大小



圖3.7 設置范例的背景



圖3.8 創建“播放列表”的內容

3) 創建“播放列表”,如圖3.8,在計算圖標中寫入以下代碼:

midilist:=catalog(filelocation^"midi","f") ----把midi文件夾下的midi文件名

midinum:=linecount(midilist) ----賦值給字符串變量midilist,實現

midilist_bak:=midilist ----隨機選擇midi文件

midinum_bak:=midinum

ramdonnum:=random(1,midinum,1)

currentfile:=getline(midilist,ramdonnum)

deleteline(midilist,ramdonnum)

midinum:=midinum-1
4) 開始播放midi文件,并進行隨機循環選擇控制。

(1) 在交互“midiloop”右邊添加一永久條件交互,條件為“~(midiplaying()&sec)”返回類型設置為“return”,相關設置如圖3.9所示;在計算圖標里寫入以下代碼,如圖3.10所示:

----判斷恢復“播放列表”,即實現循環的目的

if midinum=0 then

midilist:=midilist_bak

midinum:=midinum_bak

end if

----繼續隨機選擇播放新的midi文件

ramdonnum:=random(1,midinum,1)

currentfile:=getline(midilist,ramdonnum)

midilist:=deleteline(midilist,ramdonnum)

midinum:=midinum-1

midiplay(filelocation^"midi//"^currentfile,100,0)



圖3.9 永久條件的設置



圖3.10 永久條件交互的執行內容

為什么要設置永久條件為“~(midiplaying()&sec)”呢?其實原理就是通過系統變量sec的不斷變化,迫使系統去檢查整個表達式的值,當midi停止播放時,midiplaying()返回“0”,條件表達式立刻變為真,系統自動執行計算圖標“~(midiplaying()&sec)”里的相關內容,即播放下一首隨機選擇的midi音樂文件,從而實現了midi背景音樂的隨機選擇循環播放的功能。

(2)再在交互“midiloop”的右邊繼續添加兩個按鈕響應交互“next”和“quit”,返回類型設置為“return”。其中“next”交互的作用是手動選擇播放下一首midi,其實只要在它的計算圖標里寫上“midistop()”即可實現,為什么?自己想一想。“quit”按鈕交互實現退出程序執行。

(3)在交互“midiloop”流程的后面添加一計算圖標“playmidi”,輸入代碼:

midiplay(filelocation^"midi//"^currentfile,100,0)

不知道大家注意到程序的流程了沒有,其實這才是系統最先播放執行的mid

[1] [2] 下一頁  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久色成人 | 91av视频大全| h视频免费观看 | av免费提供 | 亚洲精品一区中文字幕 | 免费亚洲视频在线观看 | 国产 一区 精品 | 99欧美精品 | 污片视频网站 | 国产精品免费久久久久久 | 草草视频免费观看 | 看91视频| 天天曰夜夜操 | 午夜精品老牛av一区二区三区 | 久久精品亚洲欧美日韩精品中文字幕 | 色婷婷久久久亚洲一区二区三区 | 免费a级毛片大学生免费观看 | 亚洲午夜国产 | 午夜偷拍视频 | 亚洲午夜激情网 | 久久精品久久精品国产大片 | 五月天影院,久久综合, | 一级免费黄色免费片 | 日韩 欧美 中文 | 国产成人自拍av | 久久精品黄 | 久久tv免费国产高清 | 香蕉视频99 | 久久精品79国产精品 | 国产精品自拍片 | 亚洲白嫩在线观看 | 欧美极品欧美精品欧美视频 | 欧美日韩国产成人在线 | 久久精品亚洲欧美日韩精品中文字幕 | 国产精品久久久久久久久久尿 | 日日噜噜噜夜夜狠狠久久蜜桃 | 久久国产28 | 黄色视屏免费观看 | 久久精品欧美一区二区三区不卡 | 久久久久北条麻妃免费看 | 久久精品片 |