リモート通知のカスタムサウンドに大きな問題がありました。リモート通知のカスタムサウンドiOS 10、swift 3
これは私のシナリオです:
私はカスタムサウンドで通知の2種類各1をしました。私のアプリが非アクティブまたはバックグラウンドで、OSが通知センタのバナーアラートに通知を表示すると、その音は魅力的なように再生されます。通知は、フォアグラウンド状態で受信された
、私は音の要素APSを抽出し、通知を処理し、私はAVAudioPlayer経由でサウンドを再生する:
func playSound(_ sound: String) {
myLog("Let's play sound \(sound)")
// Plays new sound file
DispatchQueue.main.async {
// Stops last player if playing
if (self.soundPlayer != nil) {
if (self.soundPlayer.isPlaying) {
self.soundPlayer.stop()
}
}
do {
let path = Bundle.main.path(forResource: sound, ofType:nil)!
let url = URL(fileURLWithPath: path)
self.soundPlayer = try AVAudioPlayer(contentsOf: url)
self.soundPlayer.delegate = self
if (self.soundPlayer.prepareToPlay()) {
self.soundPlayer.play()
}
} catch let error {
myLog("Error playing .caf file: \(error)")
}
}
}
そしてここでは、問題を開始します。アプリがバックグラウンドに戻ると、プレーヤーコードが実行されたときに非アクティブになり、通知センターのOSアラートは決してカスタムサウンドを再生しません。要約
: - それは、通知を受けた背景 -
アプリケーション非アクティブ> [カスタム劇OK聞こえます。
通知を受け取るアプリのフォアグラウンド - >コードがplaySound関数でサウンドを再生し、アプリがバックグラウンド非アクティブ状態で他の通知を受け取った場合、OSはデフォルトの通知音を再生します。
ありがとうございます。
アプリがフォアグラウンドにあり、正常に動作しているときにもAVPlayerを使用してサウンドを再生しています。しかし、ローカル通知がトリガされたときの背景モードでは、カスタムサウンドの代わりに、デフォルトの通知サウンドが再生されます。しかし、 "didReceiveLocalNotification"メソッドを使って、iOS9で問題なく動作していました。助けてください。 – NSIceCode