当前位置: 首页 > news >正文

专业做网站服务学生管理系统网站

专业做网站服务,学生管理系统网站,网页设计与制作课程教学痛点,慈利网站建设Windows波形音频MMEAPI简介 使用MMEAPI时需要导入头文件#xff1a;#includemmeapi.h mmeapi.h文件的主要内容 mmeapi.h 文件是 Windows 多媒体 API 的一部分#xff0c;主要用于处理波形音频#xff08;Waveform Audio#xff09;的输入和输出。以下是该文件的…Windows波形音频MMEAPI简介 使用MMEAPI时需要导入头文件#includemmeapi.h mmeapi.h文件的主要内容 mmeapi.h 文件是 Windows 多媒体 API 的一部分主要用于处理波形音频Waveform Audio的输入和输出。以下是该文件的主要内容和功能 错误返回值 定义了一些波形音频操作的错误返回值例如 WAVERR_BADFORMAT不支持的波形格式。WAVERR_STILLPLAYING仍有音频在播放。 • WAVERR_UNPREPARED音频头未准备好。 • WAVERR_SYNC设备是同步的。 数据类型 定义了一些与波形音频相关的数据类型例如 • HWAVE、HWAVEIN、HWAVEOUT波形音频设备的句柄。 • WAVECALLBACK波形音频回调函数类型。 回调消息 定义了一些波形音频设备的回调消息例如 • WOM_OPEN、WOM_CLOSE、WOM_DONE波形输出设备的回调消息。 • WIM_OPEN、WIM_CLOSE、WIM_DATA波形输入设备的回调消息。 设备 ID 定义了波形设备映射器的设备 ID • WAVE_MAPPER用于波形设备映射器的设备 ID。 标志 定义了一些用于 waveOutOpen 和 waveInOpen 函数的标志例如 • WAVE_FORMAT_QUERY查询格式。 • WAVE_ALLOWSYNC允许同步。 • WAVE_MAPPED、WAVE_FORMAT_DIRECT 等。 数据块头 定义了波形数据块头的结构体 WAVEHDR包括以下字段 • lpData指向数据缓冲区的指针。 • dwBufferLength数据缓冲区的长度。 • dwBytesRecorded仅用于输入。 • dwUser供客户端使用。 • dwFlags各种标志。 • dwLoops循环控制计数器。 • lpNext、reserved保留给驱动程序使用。 设备能力结构 定义了波形输出设备和输入设备的能力结构体例如 • WAVEOUTCAPS、WAVEINCAPS描述设备的能力包括制造商 ID、产品 ID、驱动程序版本、支持的格式、通道数等。 标志字段 定义了一些用于 WAVEHDR 和设备能力结构体的标志字段例如 • WHDR_DONE、WHDR_PREPARED、WHDR_BEGINLOOP、WHDR_ENDLOOP、WHDR_INQUEUE用于 WAVEHDR 的标志。 • WAVECAPS_PITCH、WAVECAPS_PLAYBACKRATE、WAVECAPS_VOLUME、WAVECAPS_LRVOLUME、WAVECAPS_SYNC、WAVECAPS_SAMPLEACCURATE用于设备能力结构体的标志。 使用 waveOutOpen 函数打开一个波形音频输出设备 以下是一个简单的示例展示如何使用 waveOutOpen 函数打开一个波形音频输出设备 #include windows.h #include mmeapi.hvoid OpenWaveOutDevice() {HWAVEOUT hWaveOut;WAVEFORMATEX wfx;// 设置波形格式wfx.nSamplesPerSec 44100; // 采样率wfx.wBitsPerSample 16; // 每个样本的位数wfx.nChannels 2; // 通道数立体声wfx.cbSize 0; // 额外信息的大小wfx.wFormatTag WAVE_FORMAT_PCM; // PCM 格式wfx.nBlockAlign (wfx.wBitsPerSample * wfx.nChannels) / 8;wfx.nAvgBytesPerSec wfx.nSamplesPerSec * wfx.nBlockAlign;// 打开波形音频输出设备if (waveOutOpen(hWaveOut, WAVE_MAPPER, wfx, 0, 0, CALLBACK_NULL) ! MMSYSERR_NOERROR) {// 处理错误} } 使用 waveInOpen 函数打开一个波形音频输入设备 要使用 waveInOpen 函数打开一个波形音频输入设备你需要按照以下步骤进行操作 定义波形音频格式使用 WAVEFORMATEX 结构体定义音频格式。调用 waveInOpen 函数传递设备句柄、设备 ID、音频格式、回调函数等参数。 以下是一个示例展示如何使用 waveInOpen 函数打开一个波形音频输入设备 #include windows.h #include mmeapi.h #include iostream// 回调函数用于处理音频输入事件 void CALLBACK WaveInProc(HWAVEIN hwi,UINT uMsg,DWORD_PTR dwInstance,DWORD_PTR dwParam1,DWORD_PTR dwParam2 ) {switch (uMsg) {case WIM_OPEN:std::cout Wave input device opened. std::endl;break;case WIM_CLOSE:std::cout Wave input device closed. std::endl;break;case WIM_DATA:std::cout Wave input data received. std::endl;break;} }int main() {HWAVEIN hWaveIn;WAVEFORMATEX wfx;// 设置波形格式wfx.nSamplesPerSec 44100; // 采样率wfx.wBitsPerSample 16; // 每个样本的位数wfx.nChannels 2; // 通道数立体声wfx.cbSize 0; // 额外信息的大小wfx.wFormatTag WAVE_FORMAT_PCM; // PCM 格式wfx.nBlockAlign (wfx.wBitsPerSample * wfx.nChannels) / 8;wfx.nAvgBytesPerSec wfx.nSamplesPerSec * wfx.nBlockAlign;// 打开波形音频输入设备MMRESULT result waveInOpen(hWaveIn, WAVE_MAPPER, wfx, (DWORD_PTR)WaveInProc, 0, CALLBACK_FUNCTION);if (result ! MMSYSERR_NOERROR) {std::cerr Failed to open wave input device. std::endl;return 1;}std::cout Wave input device opened successfully. std::endl;// 关闭波形音频输入设备waveInClose(hWaveIn);return 0; } WAVE_FORMAT常量解析 #define WAVE_FORMAT_1M08 0x00000001 /* 11.025 kHz, Mono, 8-bit */ #define WAVE_FORMAT_1S08 0x00000002 /* 11.025 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_1M16 0x00000004 /* 11.025 kHz, Mono, 16-bit */ #define WAVE_FORMAT_1S16 0x00000008 /* 11.025 kHz, Stereo, 16-bit */ #define WAVE_FORMAT_2M08 0x00000010 /* 22.05 kHz, Mono, 8-bit */ #define WAVE_FORMAT_2S08 0x00000020 /* 22.05 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_2M16 0x00000040 /* 22.05 kHz, Mono, 16-bit */ #define WAVE_FORMAT_2S16 0x00000080 /* 22.05 kHz, Stereo, 16-bit */ #define WAVE_FORMAT_4M08 0x00000100 /* 44.1 kHz, Mono, 8-bit */ #define WAVE_FORMAT_4S08 0x00000200 /* 44.1 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_4M16 0x00000400 /* 44.1 kHz, Mono, 16-bit */ #define WAVE_FORMAT_4S16 0x00000800 /* 44.1 kHz, Stereo, 16-bit */#define WAVE_FORMAT_44M08 0x00000100 /* 44.1 kHz, Mono, 8-bit */ #define WAVE_FORMAT_44S08 0x00000200 /* 44.1 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_44M16 0x00000400 /* 44.1 kHz, Mono, 16-bit */ #define WAVE_FORMAT_44S16 0x00000800 /* 44.1 kHz, Stereo, 16-bit */ #define WAVE_FORMAT_48M08 0x00001000 /* 48 kHz, Mono, 8-bit */ #define WAVE_FORMAT_48S08 0x00002000 /* 48 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_48M16 0x00004000 /* 48 kHz, Mono, 16-bit */ #define WAVE_FORMAT_48S16 0x00008000 /* 48 kHz, Stereo, 16-bit */ #define WAVE_FORMAT_96M08 0x00010000 /* 96 kHz, Mono, 8-bit */ #define WAVE_FORMAT_96S08 0x00020000 /* 96 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_96M16 0x00040000 /* 96 kHz, Mono, 16-bit */ #define WAVE_FORMAT_96S16 0x00080000 /* 96 kHz, Stereo, 16-bit */ WAVE_FORMAT_ 后跟采样率如 1 表示 11.025 kHz2 表示 22.05 kHz4 表示 44.1 kHz48 表示 48 kHz96 表示 96 kHz。M 表示单声道MonoS 表示立体声Stereo。数字 08 表示 8 位深度16 表示 16 位深度。 例如WAVE_FORMAT_44S16 表示 44.1 kHz 采样率、立体声、16 位深度的音频格式。
http://www.hkea.cn/news/14549282/

相关文章:

  • 表白墙网站怎么做做网站购买模板
  • 网站管理制度建设网站建设规范
  • 设计网站大全铲鼠湖南岚鸿相信求几个微信推广平台
  • 企业网站建设开发如何制作网站详细教程
  • 免费的ppt模板网站有哪些网站建设的相关职位
  • 上海网站建设口碑好集团公司网页设计
  • 手机网站建设分析谷哇网站建设
  • 城乡厅建设部网站首页泸州市建设工程管理局网站
  • 网站排名推广自己怎么做电商网站前端页面内容编写
  • 做网站公司不负责任怎么办阿里云商标注册入口
  • 张氏万家网站建设网站建设需要什么人才
  • 有模板怎么做网站网站备案幕布ps
  • 上海网站开发外包四川网站营销seo费用
  • 旅游网站设计模板深圳有多少互联网公司
  • 如何链接自己做的网站企业手机网站建设特色
  • 微信微商城怎么进入优化英语
  • 域名注册好了如何做网站汕头门户网站建设
  • dell网站设计特色电脑怎么建网站详细步骤
  • 网站开发与网页设计深圳极速网站建设公司
  • 设计公司做网站价格当前业界主流的网站建设
  • 接网站开发项目四川省建设厅信息平台
  • 沧州网站网站建设电商设计师工作内容
  • 建设公司网站的必要性江山市城乡建设局网站
  • 安徽省建设干部学校网站首页怎么推广网站链接
  • 国家重点项目建设库网站免费咨询律师不收费
  • 淘宝网站建设的目标什么蓝色 宽屏 网站 模板下载
  • 开鲁网站seo免费版亚洲做性视频网站
  • 密云手机网站建设兰州事件最新进展
  • 长春高铁站国际新闻头条最新24小时
  • 外贸网站建设哪里好西安建设工程信息网几点开标