Поделиться через


Настройка процесса записи

[Функция, связанная с этой страницей, класс окна MCIWnd, является устаревшей функцией. MediaPlayerзаменил его. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer вместо класса MCIWnd Windowпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

Вы можете настроить процесс записи, используя полный контроль над большинством всех элементов— от создания окна MCIWnd до сохранения записанных сведений в файле. Следующий пример запрашивает у устройства MCI возможности записи и сохранения данных, а также включает команды меню для начала или окончания записи содержимого.

В следующем примере используется функция MCIWndCreate для создания нового окна и позволяет указать существующий файл для хранения записанных данных и макроса MCIWndNew, чтобы связать новый файл с окном. Кроме того, можно использовать MCIWndOpen или макрос MCIWndOpenDialog для указания файла.

В примере используется макрос MCIWndCanRecord, чтобы убедиться, что устройство может записывать и макрос MCIWndCanSave, чтобы убедиться, что устройство сохраняет сведения. В этом примере устанавливается текущая позиция воспроизведения с помощью макросов MCIWndHome и MCIWndEnd. В примере начинается запись с помощью макроса 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.