Menyesuaikan Proses Perekaman

[Fitur yang terkait dengan halaman ini, MCIWnd Window Class, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer. MediaPlayer telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer alih-alih MCIWnd Window Class, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Anda dapat menyesuaikan proses perekaman, mengambil kontrol penuh atas sebagian besar semuanya — mulai dari membuat jendela MCIWnd hingga menyimpan informasi yang direkam dalam file. Contoh berikut meminta perangkat MCI untuk merekam dan menyimpan kemampuan, dan menyertakan perintah menu untuk merekam di awal atau akhir konten.

Contoh berikut menggunakan fungsiMCIWndCreate untuk membuat jendela baru dan memungkinkan Anda menentukan file yang ada untuk menyimpan data yang direkam dan makro MCIWndNew untuk mengaitkan file baru dengan jendela. Atau, Anda dapat menggunakan makro MCIWndOpen atau MCIWndOpenDialog untuk menentukan file.

Contohnya menggunakan makroMCIWndCanRecord untuk memverifikasi bahwa perangkat dapat merekam dan makroMCIWndCanSave untuk memverifikasi bahwa perangkat menyimpan informasi. Contoh mengatur posisi pemutaran saat ini dengan menggunakan makro MCIWndHome dan MCIWndEnd. Contoh mulai merekam dengan menggunakan makro MCIWndRecord. Setelah informasi direkam, contoh menyimpannya dengan menggunakan makroMCIWndSaveDialog.

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.