[英]How to continue to play audio after view controller is dismissed on iOS?
我在導航控制器中有兩個視圖控制器,我們可以從第一個視圖控制器導航到第二個視圖控制器。
音頻播放代碼在第二個視圖控制器的viewDidLoad方法中,如下所示:
let url = NSBundle.mainBundle().URLForResource("audioName", withExtension: "mp3")
//player = AVAudioPlayer(contentsOfURL: url!)
do {
player = try AVAudioPlayer(contentsOfURL: url!)
//player.play()
dispatch_async(dispatch_get_main_queue(), {
self.player.play()
})
} catch {
print("play error")
}
我的問題是,當加載第二個視圖控制器時,音頻正在播放,但是當我關閉第二個視圖控制器並返回第一個視圖控制器時,音頻停止播放。
我直接嘗試了play()方法和dispatch_async(dispatch_get_main_queue())方法,但是當關閉第二個視圖控制器時,音頻只是無法繼續播放。
而且,音頻可以在Xcode模擬器上自動在后台播放,我想知道是否有任何方法可以對此進行自定義。
在視圖控制器2中聲明了“ player-AVAudioPlayer”。因此,當彈出視圖控制器2時,它會與視圖控制器一起釋放。
將您的“ player-AVAudioPlayer”對象創建為單例對象,並將其存儲在AppDelegate /會話數據中。 現在,無論您需要在哪里播放音頻,都可以從那里訪問該對象並進行播放。 這樣,即使在彈出ViewController 2之后,它也將繼續播放。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.