2013-08-30 237 views
0

目標OS觸發:6+的iOS設備 :手機只音頻的背景位置

我創建一個相當簡單的方位媒體應用。我遇到的一個技術難題是我能否用背景音頻來做我想做的事。

我在後臺成功接收GPS位置更新,但我想用這些觸發區域輸入的音頻。應用程序不會在前臺不斷播放音頻,只有在進入這些圍欄時纔會播放。

播放沉默技巧是否仍然可以保持音頻會話,並且這是Apple允許其使用的應用程序?如果有的話,任何人都可以提供最近的功能代碼?

+0

「*請問‘玩沉默’把戲還是工作,以保持音頻會話*」你爲什麼不試試呢? –

+0

@GabrielePetronella我在Github上發現了一兩個在Github上使用過的項目,但它們相當過時,似乎沒有在我的設備上完成這項工作。 –

回答

0

如果你設置你的應用程序還支持背景音樂,在application:didFinishLaunching:像這樣:

[[AVAudioSession sharedInstance] setDelegate: self]; 
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive:YES error:nil]; 

,並在應用程序的plist文件添加audiobackground mode,您的應用程序將繼續在後臺運行,並播放聲音(例如發生位置變化時)。不過,我想你在播放聲音時關閉應用程序。

但是,這可能存在問題,因爲背景音頻適用於實際上在後臺保持運行軌道/流的應用程序。我可以看到蘋果如何以無意的方式拒絕您的應用程序使用他們的API。所以這是播放沉默技巧的問題。

此外,另一個問題可能是,如果用戶離開您的應用程序,然後通過音樂或任何其他音樂應用程序(Spotify,一個電臺應用程序等)開始播放他們的音樂,可以訪問背景音頻,音頻權限將被禁用(您的應用將無法通過音頻框架播放聲音,因爲另一個應用已經控制了背景音頻)。

一種選擇,我會建議:拋出一個本地通知用自己的聲音,當用戶改變位置:

UILocalNotification *localNotif = [[UILocalNotification alloc] init]; 
localNotif.soundName = @"your-sound-file-name";