#include <iostream>
#include <fstream>
#include <Windows.h>
int
main() {
std::string wavFile =
"1.wav"
;
std::string csvFile =
"a.csv"
;
HANDLE
hFile = CreateFile(wavFile.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if
(hFile == INVALID_HANDLE_VALUE) {
std::cout <<
"无法打开文件 "
<< wavFile << std::endl;
return
1;
}
std::ofstream csv(csvFile);
if
(!csv) {
std::cout <<
"无法创建文件 "
<< csvFile << std::endl;
CloseHandle(hFile);
return
1;
}
DWORD
bytesRead;
BYTE
buffer[44];
while
(
true
) {
if
(ReadFile(hFile, buffer,
sizeof
(buffer), &bytesRead, NULL)) {
if
(bytesRead ==
sizeof
(buffer) && buffer[0] ==
'R'
&& buffer[1] ==
'I'
&& buffer[2] ==
'F'
&& buffer[3] ==
'F'
&& buffer[8] ==
'W'
&& buffer[9] ==
'A'
&& buffer[10] ==
'V'
&& buffer[11] ==
'E'
) {
if
(buffer[40] != 0 || buffer[41] != 0 || buffer[42] != 0 || buffer[43] != 0) {
csv <<
"1"
<< std::endl;
csv.flush();
std::cout <<
"检测到声音,已写入文件 "
<< csvFile << std::endl;
}
}
}
Sleep(1000);
}
CloseHandle(hFile);
csv.close();
system
(
"pause"
);
return
0;
}