gpt4 book ai didi

swift - 如何将自定义数据传递到 MTAudioProcessingTapProcessCallback?

转载 作者:行者123 更新时间:2023-11-28 14:05:04 32 4
gpt4 key购买 nike

我在 MacOS 上成功地使用 Swift 中的 MTAudioProcessingTap 来操纵我的音频路由以进行实时播放和导出。但是,在运行时应该发生的特定路由取决于用户的选择。我希望能够做的是在我创建水龙头时将一对 Ints 传递给 MTAudioProcessingTapProcessCallback,这样我就可以使用一个回调定义,该定义可以使用这些 Ints 来确定如何进行路由。问题是回调是一个无法捕获上下文的 C 函数指针。

我想也许我可以使用 MTAudioProcessingTapCallbacks 的 clientInfo 参数来保存我需要的值,但是我找不到任何关于如何从 MTAudioProcessingTapProcessCallback 中访问该参数的文档。

我有 32 种可能的路由组合,不幸的是,此时我看到的唯一其他选项是声明 32 个单独的 MTAudioProcessingTapProcessCallbacks,然后在我创建 tap 时选择使用哪个。但是,如果我只有一个 MTAudioProcessingTapProcessCallback 可以根据传入的数据做出简单的决定,那对我来说会容易得多。

最佳答案

我弄清楚了它是如何工作的。为了从 Process 回调中访问 c​​lientInfo 中的数据:

  1. 在 MTAudioProcessingTapInitCallback 中,您必须使用 clientInfo 指针初始化 tapStorageOut

  2. 在 Process 回调中使用 MTAudioProcessingTapGetStorage(tap) 获取该指针并访问数据。

关于swift - 如何将自定义数据传递到 MTAudioProcessingTapProcessCallback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53085231/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com