我正在尝试制作一个能够停止iOS设备中所有声音的功能,包括可能在后台运行的其他应用程序的声音。我认为这可以通过音频会话来完成。这是我到目前为止提出的代码:
- (void) setUpAudioSessionExlusive
{
AudioSessionInitialize(NULL, NULL, NULL, NULL);
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
OSStatus propertySetError = 0;
UInt32 allowMixing = false;
propertySetError = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(allowMixing), &allowMixing);
if (propertySetError)
NSLog(@"Error setting kAudioSessionProperty_OverrideCategoryMixWithOthers: %ld", propertySetError);
// Activate audio session
OSStatus activationResult = 0;
activationResult = AudioSessionSetActive(true);
if (!activationResult)
{
NSLog(@"AudioSession is active");
}
}
然而,虽然这会阻止iPod应用程序中的音乐,但它并没有停止我拥有的互联网收音机应用程序的声音。我做错了什么,这是我想做的事情吗?非常感谢!