我想使用Mac Catalyst将iOS应用程序移植到macOS。该应用程序是AUv3插件的音频主机。
问题是我无法使用AudioComponentGetIcon API获取插件图标,因为在macOS上不可用。
如何获取插件图标?
while (true) {
comp = AudioComponentFindNext(comp, &rau->_desc);
if (comp == NULL) break;
AudioComponentDescription desc = { 0, 0, 0, 0, 0 };
if (AudioComponentGetDescription(comp, &desc) != noErr) continue;
#if !TARGET_OS_MACCATALYST
rau->_image = AudioComponentGetIcon(comp, 76);
rau->_lastActiveTime = AudioComponentGetLastActiveTime(comp);
#else
#warning CATALYST WHAT I SHOULD DO here?
//rau->_image = AudioComponentGetIcon(comp);
#endif
if (rau->_image == nil) {
rau->_image = [UIImage imageNamed:DEFAULT_AU_IMAGE];
}
}
1条答案
按热度按时间y3bcpkx11#
苹果官方的回答:AudioComponentGetIcon仅在iOS上支持应用程序间音频,而不支持音频单元扩展。由于iOS上已弃用应用间音频,因此Catalyst中不提供该功能,包括AudioComponentGetIcon。所以,是的,在Mac Catalyst应用程序中,无法获得Au图标。在macOS应用程序(非Catalyst)中,AudioComponentGetIcon函数仍然可用,但这并不提供Catalyst应用程序的解决方案。没有“桥接”机制允许您的Catalyst应用程序跨到macOS功能。
我也找到了这个解决方法,但是__comp.icon和__comp.iconURL在Catalyst中仍然不可用。