3

在 2018 年或更高版本的 Macbook Pro 上使用 Catalina Dev Beta 5 开始 Quicktime 音频录制会输出没有声音的文件(选择 Macbook Pro Microhone)。此处的示例文件:https ://www.dropbox.com/s/ib67k0vg8cm93fn/test_no_audio%20%281%29.aifc?dl=0

在录制过程中,控制台显示此错误:

“CMIO_Unit_Converter_Audio.cpp:590:RebuildAudioConverter AudioConverterSetProperty() 失败 (1886547824)”

我们有一个使用 AVFoundation 同时记录屏幕和音频的应用程序,生成的视频文件也没有音频。但是,在检查 CMSampleBuffers 时,它们似乎很好:https ://gist.github.com/paulius005/faef6d6250323b7d3386a9a70c08f70b

是否还有其他人遇到此问题,或者如果这是 Apple 正在研究的问题,可能有更多的知名度?

还有什么我应该考虑解决这个问题的吗?

4

1 回答 1

1

是的,Apple 正在改变很多与 Catalina 上的音频子系统层相关的东西。我知道正在为 Catalina 重写各种音频应用程序。同样自 beta2 以来,每个新的 beta 版本都带有一些弃用,但也带有一些新的实现 [到 MacOS 的新音频层]。

当前的 Beta 5 音频弃用:

  • OpenAL 框架已被弃用,并且出于兼容性目的仍然存在。过渡到 AVAudioEngine 以获得空间音频功能。

  • AUGraph 已弃用,取而代之的是 AVAudioEngine。

  • 不推荐使用应用间音频。使用音频单元来实现此功能。

  • 不推荐使用基于 Carbon 组件的音频单元,并且将在未来版本中删除支持。

  • 不再支持 Legacy Core Audio HAL 音频硬件插件。为音频驱动程序使用音频服务器插件。

__

关于AVFoundation [您正在使用的]:

在 Beta 5 上已弃用:

  • 先前已弃用的 32 位 QuickTime 框架在 macOS 10.15 中不再可用。

  • 依赖于 QuickTime 框架的 QTKit 的符号仍然存在,但这些类是非功能性的

上述项目:Apple 在 Catalina Beta 5 上发布了 QTkit 的符号,但它们已无效,无法使用。这意味着,一个应用程序将运行,但如果它使用那些 AVFoundation 类则不会产生任何结果。(我不知道这些弃用是否直接或间接影响您的程序,但它们与 AVFoundation 有关)

我认为它们将在下一个测试版中被完全删除,但目前它们已无效,否则它将完全导致许多试图加载它们的音频/AV 应用程序立即崩溃。这似乎是从 beta 到 beta 的一步一步的“迁移”,给开发人员时间(?)将他们的音频应用程序重写为新的音频子系统。

您可以在发行说明中找到更多详细信息 [以及一些新类和函数文档的链接以替换已弃用的文档],但它还不是一个好的/丰富的文档。

https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_beta_5_release_notes

PS:关于我的意见,观点和信息写在这里:我是一名资深的MacOS开发人员,但不是AV/Audio/Media子系统,我的领域是Kernel/Networking/Security。但我一直在密切关注自第一次发布以来每个 Catalina beta 版本中 MacOS 操作系统发生的所有变化,我注意到 Apple 在音频子系统上所做的变化是重大变化。

我无法专门帮助您解决音频编程问题,但您问这是否可能是 Apple 正在开发的东西,是的,确实如此。

我希望这些信息可以帮助您获得补充信息以解决您的应用程序问题。

于 2019-08-05T22:03:57.920 回答