【问题标题】:AVPlayer not stop playing when going back to the previous view返回上一个视图时 AVPlayer 不会停止播放
【发布时间】:2017-12-06 12:07:24
【问题描述】:

我有两个视图控制器,一个是 TableViewController,我有一个音乐列表,另一个是 UIViewController,它播放音乐。加载视图时音乐自动播放,按下暂停按钮时音乐暂停。

但是,每当我返回之前的 TableViewController 选择另一首音乐时,音乐都会继续播放。如果我选择另一种音乐,它们会一起播放。

我的代码:

var audioplayer = AVPlayer()

override func viewDidLoad() {
        super.viewDidLoad()

    play()
}

func play(){

    var songUrl = songList[selectedItem].url

    audioplayer = AVPlayer(url: songUrl!)

    audioplayer.play()

}

【问题讨论】:

    标签: swift swift3 avplayer


    【解决方案1】:

    您是否尝试过使用 .pause() ?示例:

    var audioplayer: AVPlayer? = AVPlayer()
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        play()
    }
    
    func play(){
    
        var songUrl = songList[selectedItem].url
    
        audioplayer = AVPlayer(url: songUrl!)
    
        audioplayer.play()
    
    }
    
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        audioplayer.pause()
        audioplayer = nil
    }
    

    【讨论】:

    • 如果我像这样在 viewDidDisappear 中编写代码,那么我们关闭视图播放器将停止并且我不想要它。
    • 那么看起来您将不得不重新构建您的项目。我不确定你想要发生什么,因为最后一条评论似乎与你原来的问题相矛盾。您需要提供更多详细信息。
    【解决方案2】:

    我已经解决了我的问题。我删除视图控制器中的所有播放器项目并为播放器创建新类。现在它运行得很顺利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      相关资源
      最近更新 更多