<div dir="ltr">I have successfully gotten osxaudiosink / osxaudiosrc to stream rtp audio on an iOS application, but I'm having trouble when the AVAudioSession gets interrupted. When the session gets interrupted, I deactivate the audio session. When the session interruption ends, I reactive the session. When I get an audio session interruption, do I need to pause the entire osxaudiosink / osxaudiosrc pipeline? I was trying to do some researching on AudioUnits and interruption but there isn't many details out there about this. Thanks for any help you can provide.<div><br></div><div>My code is below and the success variables are always YES.<div><br></div><div><p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo"><span style="font-variant-ligatures:no-common-ligatures">- (</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(187,44,162)">void</span><span style="font-variant-ligatures:no-common-ligatures">)handleAudioSessionInterruption:(</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(112,61,170)">NSNotification</span><span style="font-variant-ligatures:no-common-ligatures"> *)notification</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo"><span style="font-variant-ligatures:no-common-ligatures">{</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;color:rgb(112,61,170)"><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">    </span><span style="font-variant-ligatures:no-common-ligatures">NSInteger</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)"> interruptionType = [notification.</span><span style="font-variant-ligatures:no-common-ligatures">userInfo</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">[</span><span style="font-variant-ligatures:no-common-ligatures">AVAudioSessionInterruptionTypeKey</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">]</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(61,29,129)">integerValue</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">];</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo"><span style="font-variant-ligatures:no-common-ligatures">    </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(112,61,170)">NSError</span><span style="font-variant-ligatures:no-common-ligatures"> *error;</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;color:rgb(61,29,129)"><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">    </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(187,44,162)">if</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)"> (interruptionType == </span><span style="font-variant-ligatures:no-common-ligatures">AVAudioSessionInterruptionTypeBegan</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">)</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo"><span style="font-variant-ligatures:no-common-ligatures">    {</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;color:rgb(0,132,0)"><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">        </span><span style="font-variant-ligatures:no-common-ligatures">//Interruption began, so we should stop audiosession</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo"><span style="font-variant-ligatures:no-common-ligatures">        </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(187,44,162)">BOOL</span><span style="font-variant-ligatures:no-common-ligatures"> success = [[</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(112,61,170)">AVAudioSession</span><span style="font-variant-ligatures:no-common-ligatures"> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(61,29,129)">sharedInstance</span><span style="font-variant-ligatures:no-common-ligatures">]</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(61,29,129)">setActive</span><span style="font-variant-ligatures:no-common-ligatures">:</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(187,44,162)">NO</span><span style="font-variant-ligatures:no-common-ligatures"> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(61,29,129)">error</span><span style="font-variant-ligatures:no-common-ligatures">:&error];</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;color:rgb(209,47,27)"><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">        </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(61,29,129)">NSLog</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">(</span><span style="font-variant-ligatures:no-common-ligatures">@"Interruption began, session ended: %d"</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">, success);</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo"><span style="font-variant-ligatures:no-common-ligatures">    }</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;color:rgb(61,29,129)"><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">    </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(187,44,162)">else</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)"> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(187,44,162)">if</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)"> (interruptionType == </span><span style="font-variant-ligatures:no-common-ligatures">AVAudioSessionInterruptionTypeEnded</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">)</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo"><span style="font-variant-ligatures:no-common-ligatures">    {</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;color:rgb(0,132,0)"><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">        </span><span style="font-variant-ligatures:no-common-ligatures">//Interruption ended, so we should restart audiosession</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo"><span style="font-variant-ligatures:no-common-ligatures">        </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(187,44,162)">BOOL</span><span style="font-variant-ligatures:no-common-ligatures"> success = [[</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(112,61,170)">AVAudioSession</span><span style="font-variant-ligatures:no-common-ligatures"> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(61,29,129)">sharedInstance</span><span style="font-variant-ligatures:no-common-ligatures">]</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(61,29,129)">setActive</span><span style="font-variant-ligatures:no-common-ligatures">:</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(187,44,162)">YES</span><span style="font-variant-ligatures:no-common-ligatures"> </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(61,29,129)">error</span><span style="font-variant-ligatures:no-common-ligatures">:&error];</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;color:rgb(209,47,27)"><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">        </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(61,29,129)">NSLog</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">(</span><span style="font-variant-ligatures:no-common-ligatures">@"Interruption ended, session began: %d"</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">, success);</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo"><span style="font-variant-ligatures:no-common-ligatures">    }</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo;color:rgb(209,47,27)"><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">    </span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(61,29,129)">NSLog</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">(</span><span style="font-variant-ligatures:no-common-ligatures">@"got an error: %@"</span><span style="font-variant-ligatures:no-common-ligatures;color:rgb(0,0,0)">, error);</span></p>
<p style="margin:0px;font-size:11px;line-height:normal;font-family:menlo"><span style="font-variant-ligatures:no-common-ligatures">}</span></p></div></div></div>