⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 多声卡(1).cpp

📁 语音与识别技术包含很多C语言处理模块系统
💻 CPP
字号:
#include <stdio.h>
#include <windows.h>

#include <stdio.h>
HANDLE m_File;
#include "Wave.cpp"
WAVEFORMATEX * wf;
DWORD filebuflen;
HANDLE FileHandle;
void saveFile(HWND hWnd,LPTSTR pSaveBuffer,DWORD dwDataLength);
CALLBACK void fun(HWAVEIN hWaveIn,LPSTR pBuf,DWORD dwLen)
{	
	printf("fun1 %d\n",dwLen);
	filebuflen +=dwLen;
	xxRecorderClose(wavein);
	//WriteFile(FileHandle, pBuf, dwLen, &dwLen, NULL);
	//FlushFileBuffers(FileHandle);
}

DWORD FCC(LPSTR lpStr)
{
  DWORD Number = lpStr[0] + lpStr[1] *0x100 + lpStr[2] *0x10000 + lpStr[3] *0x1000000 ;
  return Number;
}
void saveFile(HWND hWnd,LPTSTR pSaveBuffer,DWORD dwDataLength)
{	

	DWORD NumToWrite=0;
	DWORD dwNumber = 0;
	FileHandle =CreateFile( "myTest.wav", GENERIC_WRITE, FILE_SHARE_READ, NULL, 
			   CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	dwNumber = FCC("RIFF");
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	dwNumber = dwDataLength + 18 + 20;
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	dwNumber = FCC("WAVE");
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	dwNumber = FCC("fmt ");
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	dwNumber = 18L;
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	WriteFile(FileHandle, wf, sizeof(WAVEFORMATEX), &NumToWrite, NULL);
	dwNumber = FCC("data");
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	dwNumber = dwDataLength;
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	WriteFile(FileHandle, pSaveBuffer, dwNumber, &NumToWrite, NULL);
	FlushFileBuffers(FileHandle);
	//waveout
	//SetEndOfFile(FileHandle);
	//CloseHandle( FileHandle );  FileHandle = INVALID_HANDLE_VALUE; // 收尾关闭句柄
	
}
void main(int argc,char * argv[])
{	
	WAVEOUTCAPS	ps;
	unsigned int	id;
	char buf[0xff];
	HWAVEIN wavein;
	DWORD dwNumber = 0;
	DWORD	buflen = 0xff;
	DWORD NumToWrite =0;
	
	
	
	xxInit();
	xxGetWaveDeviceListEx(1,buf,&buflen);
	printf("%s %d",buf,buflen);
	wavein = xxRecorderOpen(0,0,fun);

	wf = xxGetWaveFormat(wavein);
	
	//saveFile(0,0,0);
	filebuflen = 0;
	
	xxRecorderStart(wavein,0);
	
		
	getchar();
	xxRecorderClose(wavein);
	/*
	dwNumber = FCC("RIFF");
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	dwNumber = filebuflen + 18 + 20;
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	dwNumber = FCC("WAVE");
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	dwNumber = FCC("fmt ");
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	dwNumber = 18L;
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	WriteFile(FileHandle, wf, sizeof(WAVEFORMATEX), &NumToWrite, NULL);
	dwNumber = FCC("data");
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);
	dwNumber = filebuflen;
	WriteFile(FileHandle, &dwNumber, 4, &NumToWrite, NULL);	
	
	SetEndOfFile(FileHandle);
	FlushFileBuffers(FileHandle);
	CloseHandle( FileHandle );  FileHandle = INVALID_HANDLE_VALUE; // 收尾关闭句柄
	//xxRecorderClose(wavein);*/
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -