簡體   English   中英

在iOS上關閉View Controller后,如何繼續播放音頻?

[英]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.

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