一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

MMControl控件

 hunt_2010 2010-10-14

 認(rèn)識(shí)MMControl控件

MMControl控件包含一組高層次的獨(dú)立于設(shè)備的命令,通過這些命令可以控制音頻和視頻等外圍設(shè)備,包括CD、VCDWAV、MIDI、AVI等。

MMControl控件屬于ActiveX控件,使用前應(yīng)首先將其添加到工具箱中。選擇“工程”/“部件”命令,打開“部件”對(duì)話框,選擇Microsoft Multimedia Control 6.0 SP3),單擊“確定”按鈕將其添加到工具箱中,在工具箱中雙擊 圖標(biāo),即可將其添加到窗體上,添加過程如圖1所示。

1  MMControl控件添加過程

從上圖可以看出,窗體上的MMControl控件,由多個(gè)按鈕組成,這些按鈕從左到右依次是:起始點(diǎn)、終止點(diǎn)、播放、暫停、后退、前進(jìn)、停止、錄制和彈出。它們的功能是管理MCI設(shè)備和播放音頻或視頻文件。

MMControl控件的屬性

1.Command屬性

用于指定將要執(zhí)行的MCI命令,以控制播放、存儲(chǔ)多媒體文件誶,這些命令及功能如表1所示。

1                              MCI命令

命令

功能

Open

打開MCI設(shè)備

Close

關(guān)閉MCI設(shè)備

Play

MCI設(shè)備進(jìn)行播放

Pause

暫停播放或錄制

Stop

停止MCI設(shè)備

Back

向后步進(jìn)可用的曲目

Step

向前步進(jìn)可用的曲目

Prev

使用Seek命令跳到當(dāng)前曲目的起始位置。若在前一Prev命令執(zhí)行后3s內(nèi)再次執(zhí)行,則跳到前一曲目的起始位置;若已在第一個(gè)曲目,則跳到第一個(gè)曲目的起始位置

Next

使用Seek命令跳到下一個(gè)曲目的起始位置。若已在最后一個(gè)曲目,則跳到最后一個(gè)曲目的起始位置

Seek

向前或向后查找曲目

Record

錄制MCI設(shè)備的輸入

Eject

CD驅(qū)動(dòng)器中彈出音頻CD

Save

保存打開的文件

實(shí)際編程中,常用命令為open、playclose。例如:

打開一個(gè)多媒體文件:

 

MMControl1.FileName = "filename"

MMControl1.Command = "open"

 

上述代碼中的filename是指定要打開的文件多媒體文件名及路徑,如果需要自動(dòng)識(shí)別該路徑,可將多媒體文件放在工程所在的文件夾,然后使用App.Path

播放多媒體文件:

 

MMControl1.Command = "Open"

 

關(guān)閉多媒體文件:

 

MMControl1.Command = "Close"

 

  窗體加載時(shí),播放背景音樂,窗體卸載時(shí),關(guān)閉背景音樂,代碼如下。

Private Sub Form_Load()

  '播放背景音樂

  With MMControl1

      .Visible=False                                                      '設(shè)置MMControl1控件不可見

      .FileName = App.Path & "\back\mr.wav"               '指定聲音文件

      .Command = "Open"                                            '打開多媒體文件

      .Command = "play"                                              '播放多媒體文件

  End With

End Sub

Private Sub Form_Unload (Cancel as Integer)

   Form1.MMControl1.Command = "Close"                    '關(guān)閉多媒體文件

End Sub

2.DeviceType屬性

指定要打開的MCI設(shè)備的類型,這些類型及說明如表2所示。

2                     DeviceType屬性設(shè)置值

設(shè)備類型

設(shè)置值

文件類型

說明

CD audio

cdaudio

-

音頻CD播放器

Digital Audio Tape

dat

-

數(shù)字音頻磁帶播放器

Digital video(not GDI-based)

DigitalVideo

-

窗口中的數(shù)字視頻

Other

Other

-

未定義MCI設(shè)備

Overlay

Overlay

-

覆蓋設(shè)備

Scanner

Scanner

-

圖像掃描儀

Sequencer

Sequencer

.mid

音響設(shè)備數(shù)字接口(MIDI)序列發(fā)生器

Vcr

VCR

-

視頻磁帶錄放器

AVI

AVIVideo

.avi

視頻文件

VCD

mpegVideo

.dat

視頻文件

videodisc

Videodisc

-

視頻播放器

waveaudio

Waveaudio

.wav

播放數(shù)字波形文件的音頻設(shè)備

DeviceType屬性一般可以不設(shè)置,但是以下兩種情況必須設(shè)置。

1)播放CD、VCD時(shí),必須指定設(shè)備類型。

2)如果文件的擴(kuò)展名沒有指定將要使用的設(shè)備類型,那么打開復(fù)雜MCI設(shè)備時(shí)也必須指定設(shè)備類型。

3.TimeFormat屬性

用來指定所有位置信息所使用的時(shí)間格式,其設(shè)置值為010,如表3所示。

3                 TimeFormat屬性的設(shè)置值

常量

說明

0

mciFormatMilliseconds

毫秒數(shù)用四字節(jié)整數(shù)變量保存

1

mciFormatHms

小時(shí)數(shù)、分鐘數(shù)和秒數(shù)被壓縮到一個(gè)四字節(jié)整數(shù)中。從最低有效字節(jié)到最高有效字節(jié),這四個(gè)數(shù)分別是:小時(shí)數(shù)(最低有效字節(jié))/分鐘數(shù)/秒數(shù)/未使用(最高有效字節(jié))

2

mciFormatMsf

分鐘數(shù)、秒數(shù)和幀被壓縮到一個(gè)四位的整數(shù)中。從最低有效字節(jié)到最高有效字節(jié),這四個(gè)數(shù)分別是:分鐘數(shù)(最低有效字節(jié))/秒數(shù)//未使用(最高有效字節(jié))

3

mciFormatFrames

幀用四字節(jié)的整數(shù)變量保存

4

mciFormatSmpte24

24-SMPTE將以下數(shù)值壓縮到一個(gè)四字節(jié)的整數(shù)中。從最低有效字節(jié)到最高有效字節(jié),這四個(gè)數(shù)分別是:小時(shí)數(shù)(最低有效字節(jié))/分鐘數(shù)/秒數(shù)/幀(最高有效字節(jié))SMPTE(動(dòng)畫和電視工程師協(xié)會(huì))時(shí)間是一種絕對(duì)的時(shí)間格式,它按小時(shí)數(shù)、分鐘數(shù)、秒數(shù)和幀的格式顯示。標(biāo)準(zhǔn)的SMPTE的分度類型有24、2530幀每秒

5

mciFormatSmpte25

25-SMPTE按照與24-SMPTE相同的順序?qū)?shù)據(jù)壓縮到一個(gè)四字節(jié)變量中

6

mciFormatSmpte30

30-SMPTE按照與24-SMPTE相同的順序?qū)?shù)據(jù)壓縮到一個(gè)四字節(jié)變量中

7

mciFormatSmpte30Drop

30-放下-SMPTE按照與24-SMPTE相同的順序?qū)?shù)據(jù)壓縮到一個(gè)四字節(jié)變量中

8

mciFormatBytes

字節(jié)數(shù)用四字節(jié)整數(shù)變量保存

9

mciFormatSamples

示例用四字節(jié)整數(shù)變量保存

10

mciFormatTmsf

曲目、分鐘數(shù)、秒數(shù)和幀被壓縮到一個(gè)四字節(jié)整數(shù)中。從最低有效字節(jié)到最高有效字節(jié),它們分別是:曲目(最低有效字節(jié))/分鐘數(shù)/秒數(shù)/幀(最高有效字節(jié))

3.From屬性

指定開始播放文件或錄制文件的開始時(shí)間。

4.To屬性

From屬性對(duì)應(yīng),指定播放文件或錄制文件的結(jié)束時(shí)間。

5.Position屬性

該屬性用于返回正在播放的多媒體文件的位置,時(shí)間單位由TimeFormat屬性決定。

6.Length屬性

用于規(guī)定打開的MCI設(shè)備上多媒體文件的總體播放長(zhǎng)度,時(shí)間單位由TimeFormat屬性決定。

7.Start屬性

該屬性指定當(dāng)前正在播放的多媒體文件的起始位置,時(shí)間單位由TimeFormat屬性決定。

8.Mode屬性

返回打開的MCI設(shè)備的當(dāng)前模式,其設(shè)置值如表4所示。

4                                                 Mode屬性的設(shè)置值

常數(shù)/設(shè)備模式

說明

524

mciModeNotOpen

設(shè)備沒有打開

525

mciModeStop

停止

526

mciModePlay

正在播放

527

mciModeRecord

正在錄制

528

mciModeeek

正在搜索

529

mciModePause

暫停

530

mciModeReady

設(shè)備準(zhǔn)備好

 

  播放背景音樂,并顯示當(dāng)前狀態(tài)。

1)啟動(dòng)VB,新建一個(gè)工程,將MMControl控件添加到工具箱中。

2)在窗體上添加一個(gè)MMControl控件和一個(gè)Label控件,均使用默認(rèn)名稱。

3)切換到代碼窗口,編寫如下代碼。

 

Private Sub Form_Load()

  With MMControl1

      .FileName = App.Path & "\back\mr.wav"                      '指定多媒體文件

      .Command = "Open"                                                   '打開多媒體文件

      .Command = "play"                                                     '播放多媒體文件

  End With

End Sub

'顯示播放狀態(tài)

Private Sub MMControl1_StatusUpdate()

  Select Case MMControl1.Mode

    Case 524

      Label1.Caption = "設(shè)備沒有打開"

    Case 525

      Label1.Caption = "停止"

    Case 526

      Label1.Caption = "正在播放"

    Case 527

      Label1.Caption = "正在錄制"

    Case 528

      Label1.Caption = "正在搜索"

    Case 529

      Label1.Caption = "暫停"

    Case 530

      Label1.Caption = "設(shè)備準(zhǔn)備好"

  End Select

End Sub

Private Sub Form_Unload(Cancel As Integer)

   Form1.MMControl1.Command = "Close"                           '關(guān)閉正在播放的多媒體文件

End Sub

F5鍵,運(yùn)行程序,結(jié)果如圖2所示。

2 播放WAV

9.Track屬性

表示當(dāng)前MCI設(shè)備上可用的曲目個(gè)數(shù)。例如播放CD時(shí),顯示當(dāng)前曲目編號(hào)。

 

Private Sub MMControl1_StatusUpdate()

  Label2.Caption = "當(dāng)前曲目:" & Str$(MMControl1.Track)                              '顯示當(dāng)前曲目

End Sub

&說明:如果要獲得總曲目數(shù),可以使用Tracks屬性。

10.ErrorErrorMessage屬性

使用ErrorErrorMessage屬性,可以處理MMControl控件產(chǎn)生的錯(cuò)誤。在每個(gè)命令后可以檢查錯(cuò)誤情況。例如,在Open命令之后,可用下面的代碼檢查Error屬性的值,以判斷是否存在CD驅(qū)動(dòng)器。如果沒有可用的CD驅(qū)動(dòng)器,則返回錯(cuò)誤信息。例如:

 

If Form1.MMControl1.Error Then

   MsgBox Form1.MMControl1.ErrorMessage,vbCritical, "未安裝CD播放器或CD播放器不能正常工作"

End If

MMControl控件的事件

1ButtonClick事件

當(dāng)用戶單擊MMControl控件的各個(gè)命令按鈕時(shí),發(fā)生該事件。下面給出命令按鈕所對(duì)應(yīng)的事件,如表5所示。

5                              Mode屬性的設(shè)置值

命令按鈕

說明

事件

倒帶

MMControl1_PrevClick

快進(jìn)

MMControl1_NextClick

步進(jìn)

MMControl1_StepClick

回倒

MMControl1_BackClick

暫停

MMControl1_PauseClick

播放

MMControl1_PlayClick

錄音

MMControl1_RecordClick

停止

MMControl1_StopClick

彈出

MMControl1_EjectClick

 

  單擊“彈出”按鈕,提示光盤彈出,代碼如下。

 

Private Sub MMControl1_EjectClick(Cancel As Integer)

  MsgBox "光盤彈出!"

End Sub

2StatusUpdate事件

按照按UpdateInterval屬性所給定的時(shí)間間隔自動(dòng)地發(fā)生。這一事件允許應(yīng)用程序更新顯示,以通知用戶當(dāng)前MCI設(shè)備的狀態(tài)。

3Done事件

當(dāng)Notify屬性為True,MCI命令結(jié)束時(shí)發(fā)生Done事件,該事件有一個(gè)參數(shù)NotifyCode,該參數(shù)表MCI命令是否成功,其設(shè)置值如表6所示。

6                     NotifyCode參數(shù)的設(shè)置值

常量

說明

1

mciSuccessful

命令成功的執(zhí)行

2

mciSuperseded

命令被其它命令所替代

4

mciAborted

命令被用戶中斷

8

mciFailure

命令失敗

 

  當(dāng)播放完多媒體文件時(shí),將觸發(fā)MMControl控件的Done事件,在該事件下將MMControl控件的“暫停”和“停止”按鈕設(shè)置為不可用,代碼如下。

 

Private Sub MMControl1_Done(NotifyCode As Integer)

  MMControl.StopEnabled = False: MMControl.PauseEnabled = False             '“暫停”和“停止”按鈕不可用

End Sub

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧美成人欧美一级乱黄| 久久国产亚洲精品赲碰热| 日韩在线欧美一区二区| 九九蜜桃视频香蕉视频| 色丁香之五月婷婷开心| 日韩欧美一区二区不卡视频| 国产亚洲中文日韩欧美综合网| 老司机精品一区二区三区| 欧美一区二区日韩一区二区| 国产目拍亚洲精品区一区| 黄色国产自拍在线观看| 久久精品国产亚洲av麻豆| 中国黄色色片色哟哟哟哟哟哟| 亚洲欧美中文日韩综合| 精品推荐国产麻豆剧传媒| 国产精品午夜福利免费阅读| 尤物久久91欧美人禽亚洲| 好吊视频一区二区在线| 亚洲一二三四区免费视频| 国产熟女一区二区精品视频| 中文字幕中文字幕一区二区| 久久中文字人妻熟女小妇| 午夜精品久久久99热连载| 欧美成人黄色一级视频| 欧美成人精品国产成人综合 | 精品高清美女精品国产区| 99视频精品免费视频| 超碰在线播放国产精品| 日本午夜乱色视频在线观看| 性欧美唯美尤物另类视频| 久久99国产精品果冻传媒| 国产三级黄片在线免费看| 欧美大黄片在线免费观看| 国产一区二区三区精品免费| 欧美一区二区口爆吞精| 中国日韩一级黄色大片| 免费高清欧美一区二区视频| 午夜直播免费福利平台| 中国美女偷拍福利视频| 午夜福利在线观看免费| 少妇人妻一级片一区二区三区|