我有一个应用程序,使用重复间隔定期通知我的用户。现在,我的应用用户要求我允许他们以不同于其他人的方式控制通知量。 (大多低于设备的当前级别。)
我想知道是否有办法做到这一点?
答案 0 :(得分:3)
很遗憾没有(公共)API可让您控制通知音量。
UILocalNotification
弹出窗口和声音都由系统进程管理。该过程使用用户的音量偏好,在播放声音之前还会检查设备是否处于静音模式等。这在某种程度上是连贯的。
因此,您有两种选择:
以下是后一种解决方案的摘录:
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:YOUR_SOUND_URL error:&error];
[audioPlayer setVolume:YOUR_DESIRED_VOLUME];
if (audioPlayer == nil)
{
NSLog([error description]);
}
else
{
[audioPlayer play];
}
注意:将YOUR_SOUND_URL
和YOUR_DESIRED_VOLUME
替换为适当的值。
还值得一提的是这个讨论:
Sounds in UILocalNotification louder than AVAudioPlayer at max volume
答案 1 :(得分:3)
为不同的音量使用不同的声音文件。例如五个文件alarm1.aiff,alarm2.aiff ... alarm5.aiff。用户在应用程序的首选项中选择一个卷(1到5)级别,然后通知将使用相应的文件。
这种方式与使用选项选择闹钟声音相同。但只是不断变化。