兄弟萌啊,使用wasapi获取音频数据时使用GetMixFormat获取的wFormatTag等于65534是什么类型啊,如何我手动指定音频格式啥的再初始化就会报错,E_INVALIDARG,参数 pFormat 指向无效的格式说明,有兄弟知道的吗
2条回答 默认 最新
- GPT_Pro 2023-02-25 19:17关注
该回答内容部分引用GPT,GPT_Pro更好的解决问题
如果wFormatTag等于65534,这表明你正在使用的是一种未知的音频格式。在这种情况下,你可以分析pFormat结构中的变量,以获取确切的音频格式。WAVEFORMATEX * pFormat; // 获取pFormat GetMixFormat(&pFormat); DWORD wFormatTag = pFormat->wFormatTag; // 如果wFormatTag等于65534,表示正在使用未知音频格式 if (wFormatTag == 65534){ // 分析pFormat结构中的变量,以获取确切的音频格式 DWORD nSamplesPerSec = pFormat->nSamplesPerSec; // 采样率 WORD wBitsPerSample = pFormat->wBitsPerSample; // 比特率 WORD nChannels = pFormat->nChannels; // 通道数 WORD nBlockAlign = pFormat->nBlockAlign; // 块对齐 DWORD cbSize = pFormat->cbSize; // 比特率大小 // 根据以上信息,可以定义自己想要的WAVEFORMATEX结构体,然后进行初始化。 WAVEFORMATEX waveformatex; waveformatex.wFormatTag = WAVE_FORMAT_PCM; // 音频格式 waveformatex.nSamplesPerSec = nSamplesPerSec; // 采样率 waveformatex.wBitsPerSample = wBitsPerSample; // 比特率 waveformatex.nChannels = nChannels; // 通道数 waveformatex.nBlockAlign = nBlockAlign; // 块对齐 waveformatex.cbSize = cbSize; // 比特率大小 // 调用函数初始化 Initialize(&waveformatex); // &waveformatex为初始化函数的参数 }
如上代码所述,通过分析pFormat结构中的变量,我们可以获得采样率、比特率、通道数、块对齐、比特率大小信息,并将其用于定义WAVEFORMATEX 结构体,然后再初始化即可。
如果回答有帮助,望采纳。解决 无用评论 打赏 举报
悬赏问题
- ¥15 Python turtle 画图
- ¥15 关于大棚监测的pcb板设计
- ¥15 stm32开发clion时遇到的编译问题
- ¥15 lna设计 源简并电感型共源放大器
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用
- ¥15 C++ yoloV5改写遇到的问题
- ¥20 win11修改中文用户名路径
- ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计