Skip to content

Instantly share code, notes, and snippets.

@fjolnir
Last active December 25, 2015 15:59
Show Gist options
  • Save fjolnir/7003013 to your computer and use it in GitHub Desktop.
Save fjolnir/7003013 to your computer and use it in GitHub Desktop.
- (dispatch_block_t)_enableSpeakers
{
++self->_interruptCount;
UInt32 const speakerOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute,
sizeof(speakerOverride),
&speakerOverride);
__block BOOL disabled = NO;
return ^{
NSAssert(!disabled, @"Tried to call speaker route override disable block repeatedly!");
disabled = YES;
UInt32 const disableOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute,
sizeof(disableOverride),
&disableOverride);
--self->_interruptCount;
};
}
- (void)enableSpeakersForDuration:(NSTimeInterval)aSeconds
{
AfterDelay(aSeconds, [self _enableSpeakers]); // _enableSpeakers returns a block that disables the override again
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment