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


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

[Функция, связанная с этой страницей, класс окна 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.