PlaySystemSound с включенным отключением звука

Я знаю, я должен установитьAudioSession в категорию «Воспроизведение», которая позволяет аудио, даже когда выключен звук. Это то, что я делаю, но звук все еще отключается при включении.

 UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
 AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(sessionCategory), &sessionCategory);

 SystemSoundID soundID;
 NSString *path = [[NSBundle mainBundle] pathForResource:soundString ofType:@"wav"];    

 AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&soundID);
 AudioServicesPlaySystemSound (soundID);


РЕДАКТИРОВАТЬКстати, приложение представляет собой звуковую панель. Воспроизведение звука является единственной целью приложения. Вот что Apple Doc говорит по этому поводу:

Используйте эту категорию для приложения, воспроизведение аудио которого имеет первостепенное значение. Звук воспроизводится даже при заблокированном экране, а переключатель «Звонок / Без звука» установлен в бесшумный режим.


РЕДАКТИРОВАТЬ 2: при выключенном звуке звук не воспроизводится даже через наушники.Я знаю, что пользователь король, Я знаю, что выключатель звука имеет свое назначение. Дело не в этом. Я пытаюсь получить ответ на тот факт, что установкаAudioSession категория дляkAudioSessionCategory_MediaPlayback не имеет ожидаемого результата.


РЕДАКТИРОВАТЬ 3: следуя совету Джонатана Ватмофа, я установилAudioServices kAudioServicesPropertyIsUISound собственности, но все же не повезло. Я что-то пропустил?

// set the session property
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(sessionCategory), &sessionCategory);

// creates soundID
SystemSoundID soundID;
NSString *path = [[NSBundle mainBundle] pathForResource:soundString ofType:@"wav"];    
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&soundID);

// Jonathan Watmough suggestion
UInt32 flag = 0;
AudioServicesSetProperty(kAudioServicesPropertyIsUISound, sizeof(UInt32), &soundID, sizeof(UInt32), &flag);

AudioServicesPlaySystemSound (soundID);

Ответы на вопрос(5)

Ваш ответ на вопрос