// vc console
#include <windows.h>
#include <stdio.h>
#pragma comment(lib, "Winmm.lib")
#define MUTE_LENGTH 128
#define SAMPLE_RATE 11025
void main()
{
HANDLE hEvent = CreateEvent(NULL , false , false , TEXT("PCM WRITE"));
HWAVEOUT hWaveOut; //波形音频输出句柄
char mute[MUTE_LENGTH]; //静音符号串
WAVEFORMATEX waveformat = {
WAVE_FORMAT_PCM, 1, SAMPLE_RATE, SAMPLE_RATE, 1, 8, 0
}; //设定波形音频的格式
WAVEHDR waveHdr = {
0, MUTE_LENGTH, 0, 0, 0, 1, NULL, 0
}; //音频数据信息头
FillMemory(mute, MUTE_LENGTH, (BYTE)0x80); //用静音符号填充
waveHdr.lpData = mute; //初始化信息头指针
//打开音频设备
waveOutOpen (&hWaveOut, WAVE_MAPPER, &waveformat, (DWORD)hEvent, 0, CALLBACK_EVENT);
//准备信息头
waveOutPrepareHeader (hWaveOut, &waveHdr, sizeof (WAVEHDR)) ;
while(1)
{
//播放静音符号
waveOutWrite (hWaveOut, &waveHdr, sizeof (WAVEHDR)) ;
printf(".");
WaitForSingleObject(hEvent,INFINITE);
}
}
waveOutOpen、waveOutWrite系统函数用法编程实现声音播放
最新推荐文章于 2021-05-20 21:12:22 发布