首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows波形函数.8和16以外位深度的WAVEOUTCAPS

Windows波形函数.8和16以外位深度的WAVEOUTCAPS
EN

Stack Overflow用户
提问于 2020-09-21 03:47:41
回答 1查看 56关注 0票数 1

WAVEOUTCAPS结构的Microsoft文档列出了音频设备可以支持的许多格式:

我在这里没有看到任何24位变量,尽管我已经确认我的声卡能够通过调用WaveOutOpen打开24位输出(并通过该输出播放24位音频文件)。

我猜想微软为18/20/24/32/48/64位的输出定义了额外的变量,但是我找不到它们。我尝试在网络上搜索,但没有得到任何结果,我尝试使用Visual在我当前的名称空间中搜索以"WAVE_FORMAT_“开头但没有找到任何其他定义的格式的变量。

是否可以使用WaveOutGetDevCap()函数或任何类似的函数在Windows上检查4/18/20/24/32/48/64位输出可用性?如果是这样的话,是怎么做的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-24 10:54:25

waveOutXxx是传统的API,一般来说,现在不应该使用。这个API是真实音频API之上的一个仿真层,不需要支持在waveOutXxx时不存在的24位场景。没有为较新的格式定义特定的新常量,而且这些常量太多,因此不可能为每一种格式都定义单独的位。

您可以组成一个WAVEFORMATEX结构来描述您的高比特格式(通常使用它的WAVEFORMATEXTENSIBLE变体),并对照waveOutOpen函数检查它。

或者,更确切地说,使用WASAPI和IAudioClient::Initialize,有关详细信息和使用WAVEFORMATEX结构的方式,请参阅渲染流

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63985952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档