亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 64(1).txt

?? VB文章集(含API、窗口、數據庫、多媒體、系統、文件、等等)
?? TXT
字號:
用MCI指令進行多媒體編程 



   我們有時會希望為自己的程序增加音效,例如警告聲等,這就需要播放WAV文件。較簡單的做法,我們可以使用多媒體控件(VB和Delphi都提供了MCI控件)來完成,但這樣做無疑會增加系統負擔和使程序體積增大(使用OCX的話尤其明顯)。如果我們的程序并非一個多媒體程序而僅僅是用來播放音效的話,就更不劃算了。有沒有更理想的方法呢?答案是肯定的,Windows已經為我們提供了一個關于多媒體處理的動態連接庫WINMM.DLL(舊版本為MMSYSTEM.DLL),通過調用它所提供的API函數,我們就可以使用MCI指令進行多媒體方面的操作了。
  讓我們先來了解一下什么是MCI指令,MCI的全稱是Media Control Interface(媒體控制接口)。實際上MCI是一個高級的函數調用接口,我們可以把它看作是一個解釋器,通過它,我們就可以直接和外部音頻或視頻設備打交道了。
  接下來,就需要了解一下需要用到的API和MCI指令。有三個與MCI有關的API,它們是:mciSendString(),mciExecute()和mciGetErrorString()。mciSendString函數的功能是傳送指令字符串給MCI,mciExecute的功能和mciSendString一樣,不同的是當發生錯誤時mciExecute會彈出對話框顯示錯誤信息。mciGetErrorString的功能是將MCI錯誤代碼轉換為字符串。現在假設我們的編程環境是VB或Delphi,下面就在這兩種環境的情況中介紹其使用方法。
  在VB中,調用API函數必須先進行聲明,它們的格式分別為:
  Declare Function mciExecute Lib “winmm.dll" Alias “mciExecute" (ByVal lpstrCommand As String) As Long
  Declare Function mciSendString Lib “winmm.dll“Alias“mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwnd Callback As Long) As Long
  Declare Function mciGet Error String Lib “winmm.dll" Alias “mciGetError String A" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
  在Delphi中相對較簡單,由于Delphi已經將多媒體相關的API聲明預編譯在MMSYSTEM.DCU文件中,所以我們只需要在單元的Uses語句后加上 mmsystem即可在本單元中使用上述三個API函數了。
  接著再介紹一些常用的MCI指令。
   MCI指令一般格式為:MCI指令 設備名 [參數]
  打開多媒體設備:open,如:open CDAudio、open c:\windows\chimes.wav type waveaudio。
  播放多媒體設備:play,如:play CDAudio from 5000 to 20000(播放CD的第5秒到第20秒)、play c:\windows\chimes.wav。
  關閉多媒體設備:close,如:close all(關閉所有多媒體設備)。
  得到設備狀態信息:status,如:status cdaudio number of track(得到CD的曲目總數)
  有了這些預備知識,就可以將MCI和API結合起來進行多媒體編程了。
  例如,要在程序中使用音效(播放WAV文件),要求如果WAV文件不存在的話要求忽略錯誤(即不彈出出錯信息),則程序如下(以VB為例,Delphi中類似):
  Dim Result as Integer
  Dim ReturnStr As String * 1024 '注意,必須指定String的長度
  Result=mciSendString(“play c:\windows\chimes.wav",ReturnStr,1024,0) '其中ReturnStr為某些MCI指令執行后傳送給程序的文字信息
  以上這段程序可以播放指定的WAV文件,如果成功執行,則Result的值為0,如果文件不存在或出現其他錯誤,錯誤代碼會傳送給Result,但程序不會中斷。若要根據錯誤代碼自行處理錯誤信息,可以使用mciGetErrorString函數處理:
  Dim ErrStr As String * 1024
  if Result=0 then
  msgbox “播放成功"
  Else
  i%=GetErrorString(ReturnStr,ErrStr,1024)
  msgbox ErrStr
  End If
  下面,我們舉一個完整的程序作為例子(還是以VB為例),我們可以用API寫一個CD播放器來代替使用多媒體控件。這樣做的好處很明顯,當你把程序編譯成為EXE文件后復制給朋友的時候,你再也不必附加其他OCX文件(如果是Delphi的話,EXE文件體積也可以減小)。
  在VB中新建一個工程,在Form1中添加6個按鈕和一個Timer控件,屬性如下(效果如圖):
  名稱:Command1,Caption:彈出
  名稱:Command2,Caption:播放
  名稱:Command3,Caption:暫停
  名稱:Command4,Caption:下一首
  名稱:Command5,Caption:上一首
  名稱:Command6,Caption:退出
  名稱:Timer1,Interval:1000
  接著,我們就可以編寫代碼了,如下:
  '函數聲明
  Private Declare Function mciExecute Lib “winmm.dll" (ByVal lpstrCommand As String) As Long
  Private Declare Function mciSendString Lib“winmm.dll" Alias “mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
  Dim Cur As Integer '保存當前正在播放的曲目號
  Dim Total As Integer '保存CD曲目總數
  '彈出CD-ROM
  Private Sub Command1_Click()
  i% = mciExecute(“set cdaudio door open")
  End Sub
  '播放
  Private Sub Command2_Click()
  i% = mciExecute("play cdaudio")
  End Sub
  '暫停
  Private Sub Command3_Click()
  i% = mciExecute(“pause cdaudio")
  End Sub
  '播放下一首
  Private Sub Command4_Click()
  Dim ReturnStr As String * 128
  i% = mciExecute(“set cdaudio time format tmsf") '設置from后的時間格式
  If Cur < Total Then i% = mciExecute(“play cdaudio from" + Str(Cur + 1))
  End Sub
  '播放上一首
  Private Sub Command5_Click()
  Dim ReturnStr As String * 128
  i% = mciExecute(“set cdaudio time format tmsf")
  If Cur > 1 Then i% = mciExecute(“play cdaudio from" + Str(Cur - 1))
  End Sub
  '中止CD的播放并退出
  Private Sub Command6_Click()
  i% = mciExecute(“stop cdaudio")
  i% = mciExecute(“close cdaudio")
  End
   End Sub
  '程序啟動時打開CDAudio設備并得到曲目總數
  Private Sub Form_Load()
  Dim ReturnStr As String * 128
  i% = mciSendString(“open cdaudio", ReturnStr, 128, 0)
  i% = mciSendString(“status cdaudio number of tracks", ReturnStr, 128, 0)
   Total = Val(ReturnStr)
  End Sub
  '退出時中止CD的播放
  Private Sub Form_Unload(Cancel As Integer)
  i% = mciExecute(“stop cdaudio")
  i% = mciExecute(“close cdaudio")
  End Sub
  '每隔一秒監測當前播放的曲目號
  Private Sub Timer1_Timer()
  On Error Resume Next
  Dim ReturnStr As String * 128
  i% = mciSendString(“status cdaudio current track", ReturnStr, 128, 0)
  Cur = Val(ReturnStr)
  End Sub
  好了,現在這個CD播放器已經可以工作了,如果你再為它擴充一些有趣的功能的話,就是一個完整的小軟件了。(上海 申 ) 


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲 欧美综合在线网络| 欧美高清hd18日本| 国产福利一区二区三区在线视频| 蜜臀久久99精品久久久久宅男 | 久久久久9999亚洲精品| 欧美精品一区二区三| 久久综合久色欧美综合狠狠| 久久综合九色欧美综合狠狠 | 亚洲午夜免费电影| 亚洲国产一区二区在线播放| 婷婷久久综合九色综合绿巨人| 亚洲一级电影视频| 狠狠色狠狠色综合日日91app| 精品无人区卡一卡二卡三乱码免费卡 | 亚洲午夜一区二区| 亚洲成年人网站在线观看| 图片区小说区国产精品视频| 免费高清视频精品| 国产伦精一区二区三区| 成人免费av资源| 色综合久久久久综合体桃花网| 欧美亚洲国产一卡| 欧美一区二区三区免费视频| 久久理论电影网| 国产精品久久久久久久久动漫| 亚洲黄网站在线观看| 手机精品视频在线观看| 精品一区二区精品| 国产成人综合在线| 色伊人久久综合中文字幕| 欧美电影在哪看比较好| 久久精品亚洲国产奇米99| 亚洲女与黑人做爰| 热久久免费视频| 成人视屏免费看| 欧美日韩亚洲综合一区| 欧美精品一区二区精品网| 国产精品乱码一区二区三区软件| 一级日本不卡的影视| 美女视频黄 久久| 成人av电影在线观看| 欧美色综合影院| 久久久五月婷婷| 亚洲午夜激情网页| 国产一区啦啦啦在线观看| 色就色 综合激情| 欧美精品一区二区在线观看| 亚洲美女视频一区| 韩国毛片一区二区三区| 日本高清不卡一区| 久久看人人爽人人| 午夜精品久久久久久久| 国产成人啪免费观看软件| 欧美理论在线播放| 国产精品成人一区二区艾草 | 国产一区二区美女诱惑| 欧洲精品一区二区| 久久精品视频免费观看| 日韩和欧美一区二区| 91视频91自| 久久久久久毛片| 日韩在线观看一区二区| 91在线视频播放| 欧美精品一区视频| 天天色天天操综合| 色综合天天性综合| 亚洲视频在线一区| 国产精品 欧美精品| 日韩欧美国产精品一区| 一区二区三区资源| 成人成人成人在线视频| 久久久噜噜噜久久中文字幕色伊伊 | 欧美一区二区视频观看视频| 亚洲欧美日韩国产成人精品影院 | 91免费观看在线| 2019国产精品| 美女尤物国产一区| 7777精品久久久大香线蕉| 亚洲精品高清在线| av电影在线观看一区| 久久久亚洲午夜电影| 久久国产精品99精品国产| 91精品一区二区三区在线观看| 曰韩精品一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 久久综合久久鬼色| 久久成人羞羞网站| 日韩欧美国产综合在线一区二区三区| 图片区小说区区亚洲影院| 欧美视频一区二区三区| 亚洲激情一二三区| 色综合欧美在线视频区| 综合久久久久久| 91美女片黄在线观看91美女| 亚洲欧美在线高清| 99v久久综合狠狠综合久久| 国产欧美日韩视频在线观看| 国产精品综合网| 久久久久久电影| 国产盗摄女厕一区二区三区| 国产欧美日本一区二区三区| 国产精品456露脸| 欧美激情资源网| 懂色av噜噜一区二区三区av| 国产精品麻豆视频| 97久久精品人人做人人爽50路| 中文字幕永久在线不卡| 色婷婷国产精品久久包臀| 亚洲综合在线电影| 欧美三级日韩三级国产三级| 无吗不卡中文字幕| 日韩一区二区三区精品视频| 卡一卡二国产精品| 国产视频视频一区| av成人动漫在线观看| 亚洲精品久久7777| 777奇米四色成人影色区| 久久超碰97中文字幕| 2021国产精品久久精品| 波多野结衣在线一区| 亚洲精品写真福利| 91.com在线观看| 国产一区二区精品久久99 | 一本色道久久综合精品竹菊| 亚洲精品欧美激情| 欧美区视频在线观看| 美女看a上一区| 国产午夜精品福利| 91网站黄www| 日本伊人精品一区二区三区观看方式| 久久综合一区二区| 91农村精品一区二区在线| 丝袜亚洲另类欧美综合| 久久奇米777| 欧美综合亚洲图片综合区| 美女视频网站黄色亚洲| 国产蜜臀av在线一区二区三区| 色婷婷综合久久久中文一区二区| 午夜在线电影亚洲一区| 国产日韩精品一区二区浪潮av| eeuss鲁一区二区三区| 首页亚洲欧美制服丝腿| 日本一区二区视频在线观看| 91黄色免费网站| 韩国视频一区二区| 亚洲精品久久久蜜桃| 精品美女被调教视频大全网站| gogogo免费视频观看亚洲一| 视频在线观看一区| 国产精品久久久久天堂| 欧美一级一级性生活免费录像| 成人小视频在线| 奇米一区二区三区av| 国产精品久久久99| 日韩西西人体444www| 色欧美日韩亚洲| 国产盗摄一区二区三区| 日本一不卡视频| 一区二区三区四区在线播放 | 视频一区中文字幕| 国产精品欧美久久久久无广告| 欧美另类z0zxhd电影| 99久久综合国产精品| 久久精品免费观看| 亚洲一区在线观看免费观看电影高清 | 欧美亚洲综合网| 岛国一区二区三区| 日本 国产 欧美色综合| 亚洲日本va午夜在线电影| 久久品道一品道久久精品| 5858s免费视频成人| 91麻豆国产香蕉久久精品| 国产精品资源网| 男女激情视频一区| 亚洲午夜在线电影| 日韩一区中文字幕| 26uuu成人网一区二区三区| 欧美一区二区三区视频在线| 91久久国产最好的精华液| jlzzjlzz亚洲日本少妇| 国产成人综合自拍| 国产一区二区三区精品视频| 视频一区二区三区入口| 亚洲国产中文字幕在线视频综合| 成人欧美一区二区三区小说| 国产日韩欧美激情| 欧美www视频| 日韩一区国产二区欧美三区| 欧美日韩三级在线| 欧美综合色免费| 色综合一个色综合亚洲| 99麻豆久久久国产精品免费优播| 国产在线麻豆精品观看| 看电影不卡的网站| 麻豆精品视频在线观看免费| 青青草成人在线观看| 日本视频一区二区| 日韩极品在线观看| 蜜桃久久久久久久| 免费在线观看不卡|