以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 录制并存储数字化波形声音的方法 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=35474) |
-- 作者:卷积内核 -- 发布时间:7/11/2006 9:48:00 AM -- 录制并存储数字化波形声音的方法 录制并存储数字化波形声音的方法 ///////////////////////////////////////////////////////////////////////// // RecordWAVEFile // 使用 MCI_OPEN, MCI_RECORD和MCI_SAVE命令消息录制并存储数字 // 化波形声音 // 参数:dwMilliSeconds —— 录音的时间(ms) // lpszFileName —— 指定的存盘文件名 // // 返回值:0 —— 成功 // 非0 —— 失败,返回值为MCI错误码 ///////////////////////////////////////////////////////////////////////// DWORD RecordWAVEFile(DWORD dwMilliSeconds, LPSTR lpszFileName) { UINT wDeviceID; DWORD dwReturn; MCI_OPEN_PARMS mciOpenParms; MCI_RECORD_PARMS mciRecordParms; MCI_SAVE_PARMS mciSaveParms; MCI_PLAY_PARMS mciPlayParms;
// 用新文件打开波形声音,以进行录音 mciOpenParms.lpstrDeviceType = "waveaudio"; mciOpenParms.lpstrElementName = ""; if (dwReturn = mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE, (DWORD)(LPVOID) &mciOpenParms)) { // 打开设备失败,返回错误码 return (dwReturn); }
// 打开设备成功,获取设备ID wDeviceID = mciOpenParms.wDeviceID;
// 按指定的时间(ms)长度开始录音,等待录音结束再继续执行程序 // 设备的时间格式应设为ms mciRecordParms.dwTo = dwMilliSeconds; if (dwReturn = mciSendCommand(wDeviceID, MCI_RECORD, MCI_TO | MCI_WAIT, (DWORD)(LPVOID) &mciRecordParms)) { mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL); return (dwReturn); }
// 播放录音,并提示用户存盘 mciPlayParms.dwFrom = 0L; if (dwReturn = mciSendCommand(wDeviceID, MCI_PLAY, MCI_FROM | MCI_WAIT, (DWORD)(LPVOID) &mciPlayParms)) { mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL); return (dwReturn); } if (MessageBox(hMainWnd, "将录音存盘吗 ?", "", MB_YESNO) == IDNO) { mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL); return (0L); }
// 将录音存为lpszFileName文件, 等待存盘结束再继续执行程序 mciSaveParms.lpfilename = lpszFileName; if (dwReturn = mciSendCommand(wDeviceID, MCI_SAVE, MCI_SAVE_FILE | MCI_WAIT, (DWORD)(LPVOID) &mciSaveParms)) { mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL); return (dwReturn); }
return (0L); } |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |