Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回上一个视图控制器(SWIFT)时,AVPlayer不会停止播放_Swift - Fatal编程技术网

返回上一个视图控制器(SWIFT)时,AVPlayer不会停止播放

返回上一个视图控制器(SWIFT)时,AVPlayer不会停止播放,swift,Swift,我有两个视图控制器一个是TableViewController,其中我有一个音乐列表,另一个是UIViewController,它显示音乐细节并播放音乐。加载视图时音乐会自动播放,按下暂停按钮时音乐会暂停。但是,每当我返回上一个TableViewController以选择其他音乐时,音乐将继续播放。如果我选择另一种音乐,它们都在一起播放 override func viewDidLoad() { super.viewDidLoad() timeLabel.text = "00:

我有两个视图控制器一个是TableViewController,其中我有一个音乐列表,另一个是UIViewController,它显示音乐细节并播放音乐。加载视图时音乐会自动播放,按下暂停按钮时音乐会暂停。但是,每当我返回上一个TableViewController以选择其他音乐时,音乐将继续播放。如果我选择另一种音乐,它们都在一起播放

override func viewDidLoad() {
    super.viewDidLoad()

    timeLabel.text = "00:00"

    if let object = currentObject {

        audioTitle.text = object["audioTitle"] as? String
        let days = object["daysActive"] as! Int
        daysActive.text = "Powertalks: Day \(days)"

        var initialThumbnail = UIImage(named: "trc_app_icon.png")

        audioImage.image = initialThumbnail
        if let thumbnail = object["image"] as? PFFile {
            audioImage.file = thumbnail
            audioImage.loadInBackground()
        }

        if let audioFile = object["audioFile"] as? PFFile {

            if let audioPath: String = audioFile.url {

            audioPlayer = AVPlayer(URL: NSURL(string: audioPath))

            audioSlider.minimumValue = 0
            audioSlider.maximumValue = Float(CMTimeGetSeconds(audioPlayer.currentItem.asset.duration))
            audioSlider.value = Float(CMTimeGetSeconds(audioPlayer.currentTime()))

            audioPlayer.volume = volumeSlider.value

            playAudio()

            }

        }

    }

    timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("updateSlider"), userInfo: nil, repeats: true )

}

当视图消失时,必须暂停播放器。虽然
AVPlayer
没有停止方法,但您可以将
速率设置为
0.0
(或使用
pause()
)并将
currentItem
设置为零以达到相同的效果。尝试使用以下代码(未测试)


我测试了下面运行良好的代码:

override func viewWillDisappear(animated: Bool) {
audioPlayer.pause()
audioPlayer.currentItem = nil
}
您还可以使用:
audioPlayer.stop()

AVPlayer不是UIKit的成员,他有自己的布局。无法分配给属性:“currentItem”是一个get onlyproperty@Penkey当然,我在UIView的子视图中有一个AVPlayer,我没有超级视图,但当我弹出主视图控制器时,该视图仍然没有从超级视图中删除。有什么建议吗?Hello@Penkey Suresh我的问题是当我转到上一个视图控制器歌曲播放停止时,如何播放歌曲。您能解决您的问题吗?
override func viewWillDisappear(animated: Bool) {
audioPlayer.pause()
audioPlayer.currentItem = nil
}