自定义录制过程
[与此页面关联的功能 MCIWnd Window 类是一项旧功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 MediaPlayer 而不是 MCIWnd 窗口类。 如果可能,Microsoft 建议重写使用旧 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.