xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-29
  • 語言: C/C++
  • 標簽: 錄音技術??

資源簡介

利用C++實現音頻錄音功能,定義音頻頭的數據格式,通道數為2,通道字節數16為錄的聲音更為清晰,無雜音。

資源截圖

代碼片段和文件信息

#include?“SoundRecord.h“
#include?



CSoundRecord::CSoundRecord(void):m_bPlay(false)
?m_Time(0)
?m_hOPFile(nullptr)
{
m_hWaveIn=NULL;
ZeroMemory(&m_stWFEXsizeof(WAVEFORMATEX));
ZeroMemory(m_stWHDRMAX_BUFFERS*sizeof(WAVEHDR));
}


CSoundRecord::~CSoundRecord(void)
{
}

bool?CSoundRecord::initDevice()
{
MMRESULT?mRes=0;
int?nT1=0;
//填充數據頭結構體
m_stWFEX.nSamplesPerSec?=??m_samplefreq;
m_stWFEX.nAvgBytesPerSec?=? ?m_samplefreq?*?m_channels?*?m_channelbits?/?8;//每秒所需字節數
m_stWFEX.nBlockAlign?=? ?m_channels?*?m_channelbits?/?8;//一個采樣的字節數
m_stWFEX.nChannels?=?m_channels;?//1為單通道,2為雙通道
m_stWFEX.wFormatTag?=??0x0001;//編碼方式
m_stWFEX.wBitsPerSample?=? m_channelbits;//16位,即設置PCM的方式為16位立體聲(雙通道)
m_stWFEX.cbSize?=?sizeof(WAVEFORMATEX);

mRes=waveInOpen(&m_hWaveInWAVE_MAPPER&m_stWFEX(DWORD_PTR)waveInProc(DWORD_PTR)thisCALLBACK_FUNCTION);
if(mRes!=MMSYSERR_NOERROR)
{
std::cout?< return?false;
}
//新建存儲文件
//設置保存的音頻文件名稱
SYSTEMTIME?sysTime;?
GetLocalTime(?&sysTime?);?
char?fileName[512];
memset(fileName0512);
sprintf_s(fileName“%d_%d_%d_%d_%d_%d.wav“sysTime.wYearsysTime.wMonthsysTime.wDaysysTime.wHoursysTime.wMinutesysTime.wSecond);
ZeroMemory(&m_stmmIFsizeof(MMIOINFO));
//轉換?stringTolpwstr
m_FileName?=?fileName;
std::wstring?widstr;???
widstr?=?std::wstring(m_FileName.begin()?m_FileName.end());??
LPWSTR?ff?=?(LPWSTR)widstr.c_str();

m_hOPFile=mmioOpen(ff&m_stmmIFMMIO_WRITE?|?MMIO_CREATE);
if(m_hOPFile==NULL)
{
std::cout?< return?false;
}
ZeroMemory(&m_stckOutRIFFsizeof(MMCKINFO));
m_stckOutRIFF.fccType?=?mmioFOURCC(‘W‘?‘A‘?‘V‘?‘E‘);?
mRes=mmioCreateChunk(m_hOPFile?&m_stckOutRIFF?MMIO_CREATERIFF);
if(mRes!=MMSYSERR_NOERROR)
{
?std::cout?< }
ZeroMemory(&m_stckOutsizeof(MMCKINFO));
m_stckOut.ckid?=?mmioFOURCC(‘f‘?‘m‘?‘t‘?‘?‘);
m_stckOut.cksize?=?sizeof(m_stWFEX);
mRes=mmioCreateChunk(m_hOPFile?&m_stckOut?0);
if(mRes!=MMSYSERR_NOERROR)
{
std::cout?< }
nT1=mmioWrite(m_hOPFile?(HPSTR)?&m_stWFEX?sizeof(m_stWFEX));
if(nT1!=sizeof(m_stWFEX))
{
std::cout?< }
mRes=mmioAscend(m_hOPFile?&m_stckOut?0);
if(mRes!=MMSYSERR_NOERROR)
{
std::cout?< }
m_stckOut.ckid?=?mmioFOURCC(‘d‘?‘a‘?‘t‘?‘a‘);
mRes=mmioCreateChunk(m_hOPFile?&m_stckOut?0);
if(mRes!=MMSYSERR_NOERROR)
{
std::cout?< }
}

void?CSoundRecord::closeDevice()
{
MMRESULT?mRes=0;

if(m_hWaveIn)
{
unPrepareBuffers();
mRes=waveInClose(m_hWaveIn);
}
if(m_hOPFile)
{
mRes=mmioAscend(m_hOPFile?&m_stckOut?0);
if(mRes!=MMSYSERR_NOERROR)
{
std::cout?< return?;
}
mRes=mmioAscend(m_hOPFile?&m_stckOutRIFF?0);
if(mRes!=MMSY

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????6499??2018-08-30?15:49??sound\SoundRecord.cpp

?????文件???????1011??2018-08-30?15:51??sound\SoundRecord.h

?????目錄??????????0??2018-08-30?15:53??sound

-----------?---------??----------?-----??----

?????????????????7510????????????????????3


評論

共有 條評論

相關資源