Objective c 在iphone 5c上,AUGraphGetNodeInteractions不返回任何交互
我用 在所有设备(iphone 5s、6、6s、7)上,它都返回交互和连接的节点,但在iphone 5c和ipad mini上,它不返回交互(ioNumInteractions=0) 可能是因为32位CPU。 有什么办法解决这个问题吗 卡肖夫(图表):Objective c 在iphone 5c上,AUGraphGetNodeInteractions不返回任何交互,objective-c,audiounit,ipad-mini,Objective C,Audiounit,Ipad Mini,我用 在所有设备(iphone 5s、6、6s、7)上,它都返回交互和连接的节点,但在iphone 5c和ipad mini上,它不返回交互(ioNumInteractions=0) 可能是因为32位CPU。 有什么办法解决这个问题吗 卡肖夫(图表): 您应该将ioNumInteractions设置为希望AUGraphGetNodeInteractions返回的最大交互次数。您可以使用AUGraphCountNodeInteractions获取实际计数。然后需要初始化一个足够大的数组来保存结果
您应该将ioNumInteractions设置为希望AUGraphGetNodeInteractions返回的最大交互次数。您可以使用AUGraphCountNodeInteractions获取实际计数。然后需要初始化一个足够大的数组来保存结果 下面是一个例子:
Member Nodes:
node 1: 'augn' 'afpl' 'appl', instance 0x6000000323c0 O I
node 2: 'auou' 'rioc' 'appl', instance 0x600000032460 O I
Connections:
node 1 bus 0 => node 2 bus 0 [ 2 ch, 44100 Hz, 'lpcm' (0x00000029) 32-bit little-endian float, deinterleaved]
CurrentState:
mLastUpdateError=0, eventsToProcess=F, isInitialized=T, isRunning=T (1)
现在,ioNumInteractions有了一个计数。使用此选项创建将保存交互的数组
UInt32 ioNumInteractions = 0;
AUGraphCountNodeInteractions(graph, node, & ioNumInteractions);
AUNodeInteraction interactions[ioNumInteractions];
AUGraphGetNodeInteractions(graph,
node,
&ioNumInteractions,
interactions);
AUGraphGetNodeInteractions在这里也设置了离子交互。然后遍历交互数组
UInt32 ioNumInteractions = 0;
AUGraphCountNodeInteractions(graph, node, & ioNumInteractions);
AUNodeInteraction interactions[ioNumInteractions];
AUGraphGetNodeInteractions(graph,
node,
&ioNumInteractions,
interactions);
for(int i=0;i
我认为,在5c上,离子相互作用偶然得到的值为0,因此AUGraphGetNodeInteractions返回0个相互作用。AUGraphGetNodeInteractions的本质是,它只返回ioNumInteractions交互,因此如果向它传递一个垃圾值,如2893040(因为您没有初始化ioNumInteractions),它仍将返回它所拥有的一个或两个连接。您能展示一下如何设置图吗?添加了CAShow(图);我使用kAudioUnitSubType_AudioFilePlayer和kAudioUnitSubType_RemoteIO节点的简单示例。非常感谢,Dave!