首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ExtAudioFile API曾经使用硬件来解码音频吗?

ExtAudioFile API曾经使用硬件来解码音频吗?
EN

Stack Overflow用户
提问于 2014-01-23 22:51:47
回答 1查看 294关注 0票数 0

我正在使用ExtAudioFile接口解码音频,并想知道它是否曾经使用硬件辅助音频解码。

kExtAudioFileProperty_CodecManufacturer属性的文档显示:

在iOS中使用此属性可以通过指定kAppleHardwareAudioCodecManufacturer或kAppleSoftwareAudioCodecManufacturer在硬件或软件编码器之间进行选择。

这似乎表明ExtAudioFile确实可以利用解码硬件。

在其他地方,在音频格式服务文档中,我发现:

基于硬件的编解码器只能在使用音频队列服务播放或录制或使用接口(如使用音频队列服务的AV Foundation )时使用。特别是,您不能使用基于硬件的音频编解码器与OpenAL或当使用I/O音频单元.

..。这还不完全清楚;如果ExtAudioFile在其实现中使用了音频队列服务,那么也许它可以使用硬件,但我们实际上并不知道它是如何实现的。

我试着在运行时测试硬件是否被使用,但事实证明这本身很困难。音频格式服务引用中给出的一种方法是使用AudioFormatGetProperty测试kAudioFormatProperty_HardwareCodecCapabilities属性。但是示例代码不起作用,总是返回kAudioFormatUnsupportedPropertyError。(在网上搜索后,我发现了一些来自有这个问题的人的其他问题,但没有关于成功使用它的报道。)

所以..。我想知道是否有人知道有什么方法可以确定硬件解码器当前是否处于活动状态(在这种情况下,我可以自己测试ExtAudioFile是否在使用它)。或者,如果有人对ExtAudioFile是否使用硬件有任何确切的了解(而不是仅仅基于苹果文档中含糊的提及)。

EN

回答 1

Stack Overflow用户

发布于 2014-01-30 17:42:50

使用kAppleHardwareAudioCodecManufacturer指定ExtAudioFileSetProperty()似乎启用了硬件解码,因为当已经有一个打开的音频文件打开该编解码集时,kAudioConverterErr_HardwareInUse会失败,而当音频类别被设置为不启用硬件解码的音频类别时,它会失败。

然而,在对仪器进行分析之后,我发现如果启用硬件解码,性能会稍微差一些,但我仍然无法解释.

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

https://stackoverflow.com/questions/21321004

复制
相关文章

相似问题

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