2010-12-09 147 views
2

我正在開發使用背景音樂(在一個無限循環)繼續玩應用已經進入後臺後的iPhone應用程序。多任務處理:停止後臺音頻在特定時間

我的問題是我想實現一個「睡眠定時器」指定的時間段後停止播放。

這可能嗎?我花了一個小時尋找一種無用的方法。

編輯:我目前的想法是使用較低級別的API,音頻隊列服務,並在AudioQueueOutputCallback期間用另一個循環實例手動重新填充隊列。如果定時器已經過期,我不填滿循環。我假設這應該工作,因爲文檔中說當應用程序正在播放多任務背景音頻時,音頻回調仍然被觸發。任何人都可以想出一個更好的方式或理由,爲什麼這不起作用?

+0

其實不是一個愚蠢的問題。我實現了睡眠定時器,它工作。但是,我有另一種情況需要切換聲音,在這種情況下它不起作用,應用程序會在第一個聲音停止後停止。 – ghempton 2010-12-10 06:37:27

+0

嗨,剛剛遇到你的問題。你究竟如何設法使其工作?我遇到過類似的情況,雖然目的略有不同。我也需要在預定的時間停止音樂。出於興趣,你是否從MusicPlayerController的`iPodMusicPlayer`播放音樂。我已經看到了在店裏的一些應用程序,能夠實現這種「睡眠定時器」的同時,從iPod控制器播放音樂和不能爲我的生活工作如何。從本地通知到多線程,我一直在這裏待了好幾天。希望能得到一些幫助,謝謝! – sooper 2011-12-20 01:00:15

回答

2

當你排隊的背景聲音數據您的應用程序仍保持完全正常運行,如果它是在前臺(以及幾乎),所以是的,你應該只寫在給定的時間停止播放一個計時器,它將按預期發射。

現在到第二個問題:一旦你停止排隊的東西,你的應用程序將被「凍結」,直到用戶手動將其帶到前臺...所以你應該做的是開始排隊第二個文件中的音頻數據在第一個播放完成之前,如果您需要暫停或停止播放,可能解決方案是播放0字節(靜音)?

0

我實際上並不相信這會在App Store上是允許的。除了VoIP應用程序和推送通知外,應用程序不允許在後臺執行任何操作。

相關問題