RemoteEffect killed by iOS - can this be detected?
My first post - though I have used TAAE in shipping apps and it is amazing!
I have an App in progress that creates several groups, each of which has an AudioUnitFilter. Sometimes I shut off a group with setPlaying:false. If the filter attached to the group is a RemoteEffect, iOS feels compelled to kill the effect App if there hasn't been a Render call made after (what appears to be 30 seconds or so). SetPlaying:false stops Render calls (or so I believe) so this happens regularly
I'm using setPlaying because
- setting the group volume to 0.0 works, but is CPU intensive and output audio seems to be corrupted after several filters are added
- adding the filter only when needed has a noticeable delay that is inconsistent with the user experience I want
I think i could be okay if i were notified that a non-playing effect was removed by iOS. Manually removing and adding the filter seems to bring the effect back with almost no delay, so I think I could preserve the user experience I want.
So... is there a way to detect when iOS has killed a remote effect? currently I have no indication that this happens, so it appears to the user that everything is fine when it isn't. I suspect I need something with kAudioUnitProperty_IsInterAppConnected but I have never been able to get the notification.
thanks in advance!
-dave
Comments
Hey Dave - actually, a hosted IAA node requires continual rendering; according to Apple's documentation, not doing so is an error. So it's better to address the cause, rather than the symptom here: you gotta keep rendering that IAA node, even if you're just feeding it silence.
Yep, that's what i did. Thanks for the help! TAAE has been great.
Great!