自訂錄製程式

[與此頁面 相關聯的功能 MCIWnd 視窗類別是舊版功能。 MediaPlayer已取代它。 MediaPlayer已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer 而非 MCIWnd Window 類別。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

您可以自訂錄製程式,完全控制大部分專案,從建立 MCIWnd 視窗到將錄製的資訊儲存在檔案中。 下列範例會查詢 MCI 裝置以錄製和儲存功能,並包含可在內容開頭或結尾錄製的功能表命令。

下列範例會使用 MCIWndCreate 函式來建立新的視窗,並可讓您指定現有的檔案來儲存記錄的資料,以及 MCIWndNew 宏,以建立新檔案與視窗的關聯。 或者,您可以使用 MCIWndOpenMCIWndOpenDialog 宏來指定檔案。

此範例會使用 MCIWndCanRecord 宏來確認裝置可以記錄和 MCIWndCanSave 宏,以確認裝置儲存資訊。 此範例會使用 MCIWndHomeMCIWndEnd 宏來設定目前的播放位置。 此範例會使用 MCIWndRecord 宏開始錄製。 記錄資訊之後,此範例會使用 MCIWndSaveDialog 宏加以儲存。

case WM_COMMAND: 
    switch (wParam) 
    { 
        case IDM_CREATEMCIWND: 
            g_hwndMCIWnd = MCIWndCreate( hwnd, g_hinst, 
                WS_VISIBLE | WS_CHILD | 
                MCIWNDF_RECORD,                   // add Record button
                NULL ); 
 
            MCIWndNew(g_hwndMCIWnd, "waveaudio"); // new file 
 
            if( MCIWndCanRecord(g_hwndMCIWnd) ) 
            { 
                MessageBox( hwnd, 
                "Press the red button on the toolbar to record.", 
                "MCIWnd Record", 
                MB_OK ); 
            } 
            else 
            { 
                MessageBox( hwnd, 
                    "This device doesn't record.", 
                    "MCIWnd Record", 
                    MB_OK ); 
            } 
            break; 
        case IDM_RECORDATSTART: 
            if( MCIWndCanRecord(g_hwndMCIWnd) ) 
            { 
                MCIWndHome(g_hwndMCIWnd); 
                MCIWndRecord(g_hwndMCIWnd); 
            } 
            else 
            { 
                MessageBox( hwnd, 
                    "This device doesn't record.", 
                    "MCIWnd Record", 
                    MB_OK); 
            } 
            break; 
        case IDM_RECORDATEND: 
            if( MCIWndCanRecord(g_hwndMCIWnd) ) 
            { 
                MCIWndEnd(g_hwndMCIWnd); 
                MCIWndRecord(g_hwndMCIWnd); 
            } 
            else 
            { 
                MessageBox( hwnd, 
                    "This device doesn't record.", 
                    "MCIWnd Record", 
                    MB_OK); 
            } 
            break; 
        case IDM_SAVEMCIWND: 
            if( MCIWndCanSave(g_hwndMCIWnd) ) 
                MCIWndSaveDialog(g_hwndMCIWnd); 
    } 
    break; 
 
    // Handle other messages here.