4

繰り返し間隔を使用して定期的にユーザーに通知するアプリがあります。現在、アプリのユーザーから、通知の音量を他のユーザーとは異なる方法で制御できるようにするよう求められています。(ほとんどの場合、デバイスの現在のレベルよりも低くなります)。

それを行う方法があるかどうか疑問に思っていましたか?

4

2 に答える 2

3

残念ながら、通知の音量を制御できる (パブリック) API はありません。

UILocalNotificationポップアップとサウンドはどちらもシステム プロセスによって管理されます。このプロセスでは、ユーザーの音量設定を使用し、サウンドを再生する前に、デバイスがサイレント モードになっているかどうかなども確認します。これはある意味一貫しています。

したがって、次の 2 つのオプションがあります。

  1. すべての通知の音量をグローバルに調整するか、電話をサイレント モードにする必要があることをユーザーに伝えます。
  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_URLYOUR_DESIRED_VOLUMEを適切な値に置き換えます。

また、言及する価値があるのは、この議論です:
UILocalNotification のサウンドは、最大音量で AVAudioPlayer よりも大きくなります

于 2013-04-07T19:13:57.197 に答える
3

音量ごとに異なるサウンド ファイルを使用します。たとえば、5 つのファイル alarm1.aiff、alarm2.aiff ... alarm5.aiff などです。ユーザーがアプリの設定で音量 (1 ~ 5) レベルを選択すると、通知は対応するファイルを使用します。

その方法は、オプションを使用してアラーム音を選択するのと同じです。しかし、ボリュームだけが異なります。

于 2013-04-07T19:16:47.700 に答える