教程分類
教程瀏覽排行

突破Authorware課件制作中MIDI難關

    關于如何在課件中任意控制MIDI問題,似乎已經成了制約使用MIDI的一大難題,至今也鮮有關于Authorware課件制作方面的資料有過令人滿意的解決辦法。所以,經常有教師就MIDI的控制問題來信詢問。MIDI文件因其文件尺寸短小而深受老師們喜愛,在AUTHORWARE課件制作中經常利用它來做背景音樂,但MIDI是不可以直接導入程序中的,也就是不可以用圖標控制的方式直接播放,所以要用一個UCD/U32程序模塊文件來調用MIDI的播放,是通過調用a5wmme.u32或a4wmme.u32中的函數來實現的,但問題是利用這個函數無法直接實現MIDI的循環播放。為了解決這個問題,有些Authorware高手獨立開發了使MIDI文件循環播放的UCD/32文件。這個文件的名字叫做MIDILOOP, 這個UCD/32文件中只包括兩個函數:LoopMidi和StopMidi。有了這個兩個函數雖然能實現了循環播放,和停止,但卻不能實現暫停和繼續播放的功能,所以還是不能滿足有這方面要求的課件需要。

  一位湖北的教師來信提出了這樣的一個要求:"在課件中,我想演示一篇課文,同時有一首短小的MIDI做為背景音樂循環播放,在演示中我有時要暫停音樂進行講解,講解過后我要繼續播放和演示。請問我該如何實現
對于這個問題,起初我簡單地認為,只要同時調用MIDILOOP和a5wmme這兩個UCD/32文件,利用MIDILOOP文件中的LoopMidi函數來實現循環,再利用a5wmme文件中的MIDIPause來實現暫停就可以了。事實是問題不是這么簡單,因為兩個文件對MIDI控制中的變量及句柄不能相互溝通,所以導制兩個文件中的函數不能同時控制MIDI。
經過實踐,筆者就以上問題找到了一個比較好用的解決辦法。通過利用a5wmme.u32文件中的有關MIDI控制函數實現的。實際上,解決了以上這位教師的問題,其實也就解決了MIDI在課件中控制的難題。思路如下:

  1.顯示演示文章的同時循環播放MIDI

  2.在文章旁邊有三個按鈕控制MIDI的播放,暫停、繼續和停止。(當然你還可根據需要增加或減少按鈕)
程序流程圖:

  1.創建一個新文件playmidi.a6p,選取菜單欄上的[Window]--[Functions]命令,屏幕上彈出函數調用對話框。在Category中選中文件名playmidi.a6p,單擊Load按鈕。選取a5wmme文件后,調入以下函數:MIDIPlay(播放)、MIDIPlay(暫停)、MIDIResum(暫停后恢復播放)、MIDIStop(停止播放)、MIDIPlaying(返回當前MIDI播放的狀態)。

  2.拖一個計算圖標到展示窗中,命名?quot;初始化變量",雙擊打開,輸入變量X:=1。這是為了能讓程序自動檢測MIDI播放完畢后繼續播放的約定條件。
 3.拖一個交互圖標,命名為"MIDI控制"在彈出的[Response Type]響應類型對話框中選取[Button],雙擊交互圖標打開,引入要演示的課文。

  4.在交互圖標后,放入三個計算圖標,依次命名為"暫停"、"繼續"、"停止"。

  雙擊"暫停"計算圖標,輸入:

  MIDIPause()
  x:=0

  雙擊"繼續"計算圖標,輸入:

  MIDIResume()
  x:=1

  雙擊"停止"計算圖標,輸入:

  MIDIStop()
  Quit()

  5.再拖一個計算圖標放在"停止"圖標后面,雙擊新圖標上方的響應類型符號,一個小長方形標記,在彈出的對話框中的[Type]選取[Conditional],按下圖輸入所示。

  完畢后按OK按鈕,雙擊該計算圖標,輸入:

  MIDIPlay("d:\\tools\\gsls.mid", 100, FALSE)

  到這里,一切OK,運行程序。 在顯示課文的同時,在屏幕上出現了三個按按鈕,可任意暫停、繼續和停止MIDI的播放。不但實現了MIDI的循環播放,而且還實現了對其任意控制的目的,就象對WAV控制一樣,如果你想加入其它功能,例如播放MIDI中的某一段,只需加入相應的計算圖標和控制函數MIDIPlaySegment即可。

來源:不詳 發布時間:2007-6-15 0:40:34 瀏覽次數
上一篇教程:使用Authorware內部控件和函數實現音量控制
下一篇教程:Authorware控制音樂播放絕招
教程評論


評論人: 驗證碼:
內 容:
相關教程
天津快乐十分结果查询