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

  • 大小: 3.61MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-11-08
  • 語言: C/C++
  • 標簽: C++??PCM裸流??雙緩存??

資源簡介

這份代碼實現打開PCM裸流文件并用雙緩存機制進行播放的,可在VS2013下直接編譯運行,其中包含一個PCM裸流文件。

資源截圖

代碼片段和文件信息

#include?
#include?

#pragma?comment(lib?“winmm.lib“)

#define?DATASIZE?1024*512?//分次截取數據大小
FILE* pcmfile;??//音頻文件
HWAVEOUT????????hwo;

void?CALLBACK?WaveCallback(HWAVEOUT?hWave?UINT?uMsg?DWORD?dwInstance?DWORD?dw1?DWORD?dw2)//回調函數
{
switch?(uMsg)
{
case?WOM_DONE://上次緩存播放完成觸發該事件
{
LPWAVEHDR?pWaveHeader?=?(LPWAVEHDR)dw1;
pWaveHeader->dwBufferLength?=?fread(pWaveHeader->lpData?1?DATASIZE?pcmfile);;
waveOutPrepareHeader(hwo?pWaveHeader?sizeof(WAVEHDR));
waveOutWrite(hwo?pWaveHeader?sizeof(WAVEHDR));
break;
}
}
}

void?main()?
{
int?????????????cnt;
WAVEHDR?????????wh1;
WAVEHDR?????????wh2;
WAVEFORMATEX????wfx;

fopen_s(&pcmfile?“paomo.pcm“?“rb“);//打開文件

wfx.wFormatTag?=?WAVE_FORMAT_PCM;//設置波形聲音的格式
wfx.nChannels?=?1;//設置音頻文件的通道數量
wfx.nSamplesPerSec?=?8000;//設置每個聲道播放和記錄時的樣本頻率
wfx.nAvgBytesPerSec?=?16000;//設置請求的平均數據傳輸率單位byte/s。這個值對于創建緩沖大小是很有用的
wfx.nBlockAlign?=?2;//以字節為單位設置塊對齊
wfx.wBitsPerSample?=?16;
wfx.cbSize?=?0;//額外信息的大小

waveOutOpen(&hwo?WAVE_MAPPER?&wfx?(DWORD)WaveCallback?0L?CALLBACK_FUNCTION);//打開一個給定的波形音頻輸出裝置來進行聲音播放,方式為回調函數方式。如果是對話框程序,可以將第五個參數改為(DWORD)this,操作跟本Demo程序相似

wh1.dwLoops?=?0L;//播放區一
wh1.lpData?=?new?char[DATASIZE];
wh1.dwBufferLength?=?DATASIZE;?
fread(wh1.lpData?1?DATASIZE?pcmfile);
wh1.dwFlags?=?0L;
waveOutPrepareHeader(hwo?&wh1?sizeof(WAVEHDR));//準備一個波形數據塊用于播放
waveOutWrite(hwo?&wh1?sizeof(WAVEHDR));//在音頻媒體中播放第二個參數指定的數據,也相當于開啟一個播放區的意思

wh2.dwLoops?=?0L;//播放區二,基本同上
wh2.lpData?=?new?char[DATASIZE];
wh2.dwBufferLength?=?DATASIZE;
fread(wh2.lpData?1?DATASIZE?pcmfile);
wh2.dwFlags?=?0L;
waveOutPrepareHeader(hwo?&wh2?sizeof(WAVEHDR));
waveOutWrite(hwo?&wh2?sizeof(WAVEHDR));

while?(wh1.dwBufferLength?!=?0?||?wh2.dwBufferLength?!=?0)//如果文件還在沒播放完則等待500ms
{
Sleep(500);
}
waveOutUnprepareHeader(hwo?&wh1?sizeof(WAVEHDR));//清理數據
waveOutUnprepareHeader(hwo?&wh2?sizeof(WAVEHDR));

delete?[]wh1.lpData;
delete?[]wh2.lpData;
fclose(pcmfile);//關閉文件
return;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-03-22?02:20??PcmDoubleBufferPlayer\
?????目錄???????????0??2015-03-22?02:20??PcmDoubleBufferPlayer\Debug\
?????目錄???????????0??2015-03-22?02:20??PcmDoubleBufferPlayer\PcmDoubleBufferPlayer\
?????文件????????1009??2015-03-21?18:20??PcmDoubleBufferPlayer\PcmDoubleBufferPlayer.sln
?????文件???????18944??2015-03-22?02:20??PcmDoubleBufferPlayer\PcmDoubleBufferPlayer.v12.suo
?????目錄???????????0??2015-03-22?02:20??PcmDoubleBufferPlayer\PcmDoubleBufferPlayer\Debug\
?????文件?????4144064??2014-06-09?21:51??PcmDoubleBufferPlayer\PcmDoubleBufferPlayer\paomo.pcm
?????文件????????2343??2015-03-22?02:20??PcmDoubleBufferPlayer\PcmDoubleBufferPlayer\PcmDoubleBufferPlayer.cpp
?????文件????????4115??2015-03-21?18:22??PcmDoubleBufferPlayer\PcmDoubleBufferPlayer\PcmDoubleBufferPlayer.vcxproj
?????文件?????????962??2015-03-21?18:22??PcmDoubleBufferPlayer\PcmDoubleBufferPlayer\PcmDoubleBufferPlayer.vcxproj.filters

評論

共有 條評論