c语言扬声器程序,通过扬声器C编程并播放声音

本文介绍了如何使用C语言通过扬声器播放内存中的声音,特别是利用WaveHeader结构体来创建WAVE文件头,并通过PlaySound函数进行播放。同时提醒在使用SND_ASYNC标志时要注意内存管理,确保声音播放完毕后再释放缓冲区。
摘要由CSDN通过智能技术生成

你提到你了解PlaySound.其中一个标志(SND_MEMORY)将允许您播放已加载到内存中的WAVE,即您自己创建的缓冲区.只要缓冲区具有适当的WAVE标题,无论你放在哪里都应该通过扬声器播放.

标头是一个44字节的块,非常简单

struct WaveHeader

{

DWORD chunkID; // 0x46464952 "RIFF" in little endian

DWORD chunkSize; // 4 + (8 + subChunk1Size) + (8 + subChunk2Size)

DWORD format; // 0x45564157 "WAVE" in little endian

DWORD subChunk1ID; // 0x20746d66 "fmt " in little endian

DWORD subChunk1Size; // 16 for PCM

WORD audioFormat; // 1 for PCM, 3 fot EEE floating point , 7 for μ-law

WORD numChannels; // 1 for mono, 2 for stereo

DWORD sampleRate; // 8000, 22050, 44100, etc...

DWORD byteRate; // sampleRate * numChannels * bitsPerSample/8

WORD blockAlign; // numChannels * bitsPerSample/8

WORD bitsPerSample; // number of bits (8 for 8 bits, etc...)

DWORD subChunk2ID; // 0x61746164 "data&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值