繰り返し間隔を使用して定期的にユーザーに通知するアプリがあります。現在、アプリのユーザーから、通知の音量を他のユーザーとは異なる方法で制御できるようにするよう求められています。(ほとんどの場合、デバイスの現在のレベルよりも低くなります)。
それを行う方法があるかどうか疑問に思っていましたか?
繰り返し間隔を使用して定期的にユーザーに通知するアプリがあります。現在、アプリのユーザーから、通知の音量を他のユーザーとは異なる方法で制御できるようにするよう求められています。(ほとんどの場合、デバイスの現在のレベルよりも低くなります)。
それを行う方法があるかどうか疑問に思っていましたか?
残念ながら、通知の音量を制御できる (パブリック) API はありません。
UILocalNotification
ポップアップとサウンドはどちらもシステム プロセスによって管理されます。このプロセスでは、ユーザーの音量設定を使用し、サウンドを再生する前に、デバイスがサイレント モードになっているかどうかなども確認します。これはある意味一貫しています。
したがって、次の 2 つのオプションがあります。
後者のソリューションのスニペットを次に示します。
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
を適切な値に置き換えます。
また、言及する価値があるのは、この議論です:
UILocalNotification のサウンドは、最大音量で AVAudioPlayer よりも大きくなります
音量ごとに異なるサウンド ファイルを使用します。たとえば、5 つのファイル alarm1.aiff、alarm2.aiff ... alarm5.aiff などです。ユーザーがアプリの設定で音量 (1 ~ 5) レベルを選択すると、通知は対応するファイルを使用します。
その方法は、オプションを使用してアラーム音を選択するのと同じです。しかし、ボリュームだけが異なります。