目標OS觸發:6+的iOS設備 :手機只音頻的背景位置
我創建一個相當簡單的方位媒體應用。我遇到的一個技術難題是我能否用背景音頻來做我想做的事。
我在後臺成功接收GPS位置更新,但我想用這些觸發區域輸入的音頻。應用程序不會在前臺不斷播放音頻,只有在進入這些圍欄時纔會播放。
播放沉默技巧是否仍然可以保持音頻會話,並且這是Apple允許其使用的應用程序?如果有的話,任何人都可以提供最近的功能代碼?
目標OS觸發:6+的iOS設備 :手機只音頻的背景位置
我創建一個相當簡單的方位媒體應用。我遇到的一個技術難題是我能否用背景音頻來做我想做的事。
我在後臺成功接收GPS位置更新,但我想用這些觸發區域輸入的音頻。應用程序不會在前臺不斷播放音頻,只有在進入這些圍欄時纔會播放。
播放沉默技巧是否仍然可以保持音頻會話,並且這是Apple允許其使用的應用程序?如果有的話,任何人都可以提供最近的功能代碼?
如果你設置你的應用程序還支持背景音樂,在application:didFinishLaunching:
像這樣:
[[AVAudioSession sharedInstance] setDelegate: self];
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
,並在應用程序的plist文件添加audio
爲background mode
,您的應用程序將繼續在後臺運行,並播放聲音(例如發生位置變化時)。不過,我想你有在播放聲音時關閉應用程序。
但是,這可能存在問題,因爲背景音頻適用於實際上在後臺保持運行軌道/流的應用程序。我可以看到蘋果如何以無意的方式拒絕您的應用程序使用他們的API。所以這是播放沉默技巧的問題。
此外,另一個問題可能是,如果用戶離開您的應用程序,然後通過音樂或任何其他音樂應用程序(Spotify,一個電臺應用程序等)開始播放他們的音樂,可以訪問背景音頻,音頻權限將被禁用(您的應用將無法通過音頻框架播放聲音,因爲另一個應用已經控制了背景音頻)。
一種選擇,我會建議:拋出一個本地通知用自己的聲音,當用戶改變位置:
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.soundName = @"your-sound-file-name";
「*請問‘玩沉默’把戲還是工作,以保持音頻會話*」你爲什麼不試試呢? –
@GabrielePetronella我在Github上發現了一兩個在Github上使用過的項目,但它們相當過時,似乎沒有在我的設備上完成這項工作。 –