ios - unity localnotification firedate



Alarmyなどのいくつかのアラームアプリは、アプリがバックグラウンドにあり、電話が振動しているときにiPhoneでサウンドを再生することができますか。 (1)

私はいくつかの重要なことについてユーザーに警告することができるアプリに取り組んでいます。 ローカル通知を使用してユーザーに警告します。 iOSでは、電話が振動していると通知が鳴りません。 これはアプリの多くのユーザーにとって大きな問題ですが、アプリがバックグラウンドで動作している場合、iOSはアプリがサウンドを再生することを許可していないと考えて以来、私はこれまで質問を先送りにしてきました。

音楽アプリは、オーディオのバックグラウンドモードを有効にすることで、電話が振動しているときでも曲を再生できますが、特定の時間に曲を再生するようにスケジュールすることはできません。

最近、アプリがバックグラウンドで動作していても、一部のアプリで特定の時間にサウンドを再生できることがわかりました。 そのようなアプリの1つがAlarmyアラームアプリです。 通知がクリアされた後も音楽は再生され続けるため、アラームが期限切れになったときに、彼らがローカル通知を介して音楽を再生しているとは思いません。 ローカル通知のドキュメントから、ユーザーが通知をクリックするまでローカル通知が発生すると、コードを実行できないことがわかりました。 だから、私はバイブレーションで音を再生できるかもしれないオーディオプレーヤーを起動することはできません。

電話が振動していて、iOSでアプリがバックグラウンドにある場合でも、そのようなアプリはどのようにしてサウンドを再生できますか?


この種の機能を実装する方法はいくつかあります参照先このリンクをお勧めします。

デバイスの呼び出し音スイッチがバイブレーションに設定されている間に実際にサウンドを再生するため

まず、バックグラウンドでオーディオを再生するために、機能にオーディオバックグラウンドモードを含めるようにしてください。

その後、

スイフト4

do {
  try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, with: [.duckOthers, .defaultToSpeaker])
  try AVAudioSession.sharedInstance().setActive(true)
  UIApplication.shared.beginReceivingRemoteControlEvents()
} catch {
  NSLog("Audio Session error: \(error)")
}

ここでは、共有オーディオセッションのカテゴリをAVAudioSessionCategoryPlayAndRecord設定して、デバイスの呼び出し音スイッチをバイブレーションに設定しながらサウンドを再生できるようにします。

.duckOthersは、 ミックス可能なオーディオが再生されている場合、他のオーディオを静かにするように指定されているので、アラームが聞こえます。 別の動作を希望する場合は、それを省略するか別のオプションを使用することができます。

.defaultToSpeakerが指定されているため、音量はスピーカーに向かって大きくなり、音量ははるかに大きくなり、ユーザーは簡単に目覚めます。

beginReceivingRemoteControlEventsを使用すると、ロック画面の再生/一時停止ボタンなどのリモートコントロールのオプションを処理して、ユーザーが目覚めたときにアラームをミュートするのを簡単にすることができます。





uilocalnotification