gpt4 book ai didi

objective-c - 如何托管 Apple 的 Pitch Shift Audio Unit 插件等

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:23 25 4
gpt4 key购买 nike

如何在自己的窗口中正确托管 PitchShift 音频单元插件?

我正在开发一个 Mac 应用程序来托管 Apple 系统提供的 Audio Unit 插件。在新的 OSX 10.7 Lion 中,一些插件更新了 View 。 PitchShift 就是其中之一。

PitchShift 和其他几个有新的旋钮来改变那里的参数。当用鼠标转动旋钮时,旋钮下方会显示一个表示旋钮参数值的水平条。

松开旋钮后,甚至在窗口关闭后,该栏仍保留在屏幕上。如果我单击其中一个旋钮,从而创建一个流氓值栏,并移动 PitchShift View 所在的窗口,该栏将停留在窗口原来所在的位置。如果我此时再次单击旋钮,则会出现一个新条,但两个条都会根据不断变化的旋钮参数值信息进行主动更新。每次我重复此过程并在屏幕上停留更多条时,都会发生这种情况。

在这种情况发生几次后,我的应用程序退出并在 main.m 文件中调用 NSApplicaionMain() 时出现错误访问。

我在 Logic 9 中检查过,那里没有发生这种情况。该条似乎直接与旋钮相连,因此在您用鼠标松开旋钮后立即消失。

我将 PitchSHift View 设置为专用 NSWindow 的 contentView。

Logic 是如何防止这种情况发生的,或者我如何才能做到?

我试过查看参数值是否在 PitchShift View 的 subview 中显示栏,但它们似乎不是。

如有任何帮助,我们将不胜感激。

编辑:当 a 值栏第一次出现时,我的程序在控制台中得到以下输出:圆和线不相交

所以我发现它正在使用核心动画 CALayers。现在的问题是值栏图层不是 PitchShiftView 图层层次结构的一部分。换句话说,我可以找到构成 pitchShiftView 的所有其他层,但找不到值条的层。这似乎是整个问题的开始。

最佳答案

我终于明白了。参数值栏是拥有音频单元 View 的窗口的子窗口。

为了解决这个问题,我在我的 NSApplication 子类中捕获窗口的鼠标弹起事件,然后关闭子窗口(又名值栏),这样它们就不会停留在屏幕上。

这并没有阻止退出不良访问。我现在认为这是一个单独的问题,似乎只与这些挥之不去的子窗口有关。

关于objective-c - 如何托管 Apple 的 Pitch Shift Audio Unit 插件等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6963223/

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