簡體   English   中英

使用 AudioSession 在后台喚醒應用程序,如 Alarmy iOS 應用程序

[英]Wake up application in background using AudioSession like Alarmy iOS app

我正在嘗試在后台喚醒應用程序。 我看到一個應用程序在本地通知到達時在后台喚醒應用程序。 應用名稱是 Alarmy - https://itunes.apple.com/us/app/alarmy-alarm-clock/id1163786766?mt=8

我已經檢查了后台模式的蘋果文檔 - https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

我發現了一個在后台啟動應用程序的提示 - “對於音頻應用程序,音頻框架需要應用程序來處理一些數據。(音頻應用程序包括那些播放音頻或使用麥克風的應用程序。)”但我沒有找到任何技術援助。

關於 Alarmy 應用程序,我在這里發現了 2 或 3 個問題,他們都說他們正在使用 AVAudioSession 類別播放播放靜音。 我確實嘗試過,但是當本地通知出現時它並沒有幫助我喚醒應用程序。

直到現在我做了無聲音頻的無限循環並設置了音頻會話,但它無法喚醒應用程序。

let audioSession = AVAudioSession.sharedInstance()
    try? audioSession.setCategory(.playback, mode: .default, options: .mixWithOthers)
    try? audioSession.setActive(true)

audioPlayer = try! AVAudioPlayer.init(contentsOf: URL.init(fileURLWithPath: Bundle.main.path(forResource: "Birthday_6", ofType: "mp3")!))
    audioPlayer?.numberOfLoops = -1
    audioPlayer?.play()

如果有人對 AVAudioSession 有想法可以像位置服務一樣喚醒應用程序,請告訴我。

根據我的觀察,Alarmy 應用程序正在為設置警報的指定時間設置x個本地通知。

當應用程序進入后台時,他們正在設置x數量的本地通知。 並在應用程序進入前台時使所有掛起的通知無效。 這是一個循環,當應用程序進入前台並返回后台時,它會不斷重復。

終止時,他們會在那個時刻觸發一個通知,要求用戶在后台保持應用程序打開,以及前面提到的指定時間的x條通知。

當應用程序不在前台時, x個通知在鬧鍾時間被觸發,每個通知之間有一個特定的時間間隔,這是正在播放的聲音的長度,這給音樂或正在觸發的通知的聲音。

當鬧鍾響起時,如果應用程序正在運行,它會像普通鬧鍾一樣響起,直到它被關閉。 如果您在此期間單擊除關閉之外的任何內容,或強制關閉應用程序,則將觸發前面提到的循環並繼續使用本地通知發出聲音,直到單擊應用程序中的關閉按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM