文章編號: 182799 - 上次校閱: 2005年3月11日 - 版次: 3.4

範例: MMMCTRL.EXE 示範使用多個音效卡

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

Mmmctrl.exe 是自動解壓縮的壓縮的檔案,其中包含 Visual Basic 專案,示範如何偵測及在系統中使用多個 MCI 裝置。所顯示的技術和在這個範例專案中使用 [Windows API 函式可讓您有多個音效卡支援,讓您可以啟用一個音效卡的錄製音效和另一個音效卡用於播放音效的程式。

其他相關資訊

從 「 Microsoft 下載中心 」 下載下列檔案有:
Mmmctrl.exe (http://download.microsoft.com/download/vb60ent/sample6/1/w9xnt4/en-us/mmmctrl.exe)
如需有關如何下載 Microsoft 支援檔案的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
119591? (http://support.microsoft.com/kb/119591/EN-US/ ) 如何從線上服務取得 Microsoft 支援檔案
Microsoft 已掃描這個檔案有無病毒。Microsoft 使用已張貼檔案的日期中的 [可用的最新病毒偵測軟體。檔案儲存在安全性強化的伺服器上,以避免任何未經授權的更改至檔案。 您在執行自行解壓縮的可執行檔時下列檔案會擴展成多個多媒體控制項範例專案目錄中:
  • 專案的 [Form1.frm(11K) 主表單
  • 與函式宣告 Module1.bas(18K) [基本模組
  • [Project1.vbp(1K) 專案檔
  • Project1.vbw(1K) 專案工作區檔案
  • Readme.txt-您目前閱讀這個檔案。
下一節會示範如何啟動及使用範例專案。

如何使用範例專案

當從 Visual Basic IDE 執行專案時,多個多媒體控制項範例表單會顯示。表單分成播放區段和記錄] 區段。

[播放] 區段會有音效輸出裝置] 清單方塊,表示所有聲波輸出可用的裝置播放的音效檔案。在清單方塊中選取其中一個輸出裝置。這樣您就可以選取要播放的聲波檔案開啟的檔案將顯示對話方塊。檔案名稱和路徑顯示在 [文字] 方塊中。 當您選取 [音效檔會啟用適當的多媒體控制項按鈕。

如果您選取一個檔案而不選取聲波裝置,會顯示下列的錯誤訊息:
指定的參數超出指定的命令的範圍。

若要避免顯示這個錯誤訊息,選取 [開啟檔案之前的 [聲波裝置]。

[記錄] 區段也有顯示所有的聲音輸入的裝置的清單方塊。 在清單方塊中選取其中一個輸入裝置。開啟可讓選定的聲波輸入的裝置的錄製,並啟用適當的多媒體控制項按鈕。

如果您核取 [使用控制台中錄製格式] 核取方塊,聲波輸入的裝置會記錄在格式、 取樣率以及在 [控制台] 的 [多媒體內容] 對話方塊中設定的通道數目。如果使用控制台中錄製格式] 核取方塊已清除,聲波輸入的裝置將會記錄在預設的 MCI 設定使用 11 kHz 取樣率的 8 位元單聲道。

儲存開啟對話方塊,讓您可以儲存您錄製的聲波檔案。

這個範例的運作方式

表單載入] 事件中數字的聲波輸入,且輸出裝置能夠擷取輸入裝置使用的輸出裝置的 waveOutGetNumDevsA 函式] 和 [waveInGetNumDevCapsA 函式。使用 waveOutGetDevCaps 輸出裝置] 及 [輸入裝置的 waveInGetDevCaps 所擷取型別和功能的每個裝置。功能會儲存在使用者定義的變數。每個裝置的名稱會新增到適當的清單方塊。

當您開啟檔案記錄或播放時,您也會啟用適當的多媒體控制項,這項工作。根據您選取多媒體控制項指令,事件會執行適當 mciSendCommandA 函式。

如果使用控制面板錄製格式] 核取方塊已核取,使用者-定義函式會擷取登錄中的 [控制台] 設定第一個使用 RegOpenKeyExA 函數開啟 WaveFormats 登錄機碼。[RegQueryValueStringA 和 RegQueryValueExA 函式用來擷取登錄機碼值。[RegCloseKey 用來關閉登錄機碼。

?考

如需音效卡或使用多媒體 API 函式的詳細資訊,請參閱下列主題:

平台 SDK 產品說明文件 》 中多媒體的參考

Visual Basic 參考 》 中的多媒體 MCI 控制項

這個範例中,已使用下列 Windows API 函式。如需有關這些函數的詳細資訊,請參閱平台 SDK 產品文件:
  • mciGetErrorStringA
  • mciSendCommandA
  • RegOpenKeyExA
  • RegQueryValueExA
  • RegCloseKey
  • waveOutGetDevCapsA
  • waveInGetDevCapsA
如需詳細資訊請參閱 「 Microsoft 知識庫 」 中下列文:
147811? (http://support.microsoft.com/kb/147811/EN-US/ ) : HOWTO: 偵測電腦如果有聲音卡,可播放聲波音訊

這篇文章中的資訊適用於:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
關鍵字:?
kbmt kbdownload kbfile kbhowto kbsample kbsound kbwaveaudio KB182799 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:182799? (http://support.microsoft.com/kb/182799/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。