当应用程序在后台生成UILocalNotification时,如何设置设备的音量(在静音模式下)?我正在处理闹钟应用程序,因此声音也必须以静音模式播放,我正在使用本地通知处理应用程序警报。
严重困扰此问题,无法在静音模式下播放闹钟。
请帮助..
答案 0 :(得分:3)
根本不可能。 UILocalNotification
弹出窗口和声音由另一个系统进程生成,该进程会观察设备静默模式,因此如果设备处于静音状态,它将不会播放通知声音。
如果您希望闹钟应用程序即使在设备处于静音模式时也能播放闹钟声音,您必须直接从应用程序播放闹钟声音。要做到这一点,您需要让应用程序在后台运行,然后您必须在后台播放警报声音文件。后者可以通过在info.plist中指定“必需的背景模式”属性的“音频”来完成(您必须将该属性添加到plist文件中)
现在,使用AVAudioPlayer
,即使设备处于静音状态,也可以通过设置音频会话类别来播放声音:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
希望这有帮助。
答案 1 :(得分:0)
您必须意识到即使您的应用被杀,也会触发本地通知。这使我得出结论,可能无法做到这一点。 但你可以尝试这样:
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound; AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
在你的音频会话激活之前。