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! =)

Sign In or Register to comment.