Ios AVPlayer不断添加流,而不是替换流

Ios AVPlayer不断添加流,而不是替换流,ios,swift,avplayer,Ios,Swift,Avplayer,我正在从URL触发视频播放。它只是一个按钮,打开AVPlayerController全屏。如果人们关闭它,用户可以返回到另一个项目,可能还有一个视频。在那里,他们可以点击视频开始,但是,当他们这样做的时候,我可以听到前一个播放器的音频,另一个VC和这个播放器一起播放。这种情况一直存在。我怎样才能避免这种情况 这是我的视频播放器课 import UIKit import AVFoundation import AVKit class simpleVideoPlayer: UIViewContro

我正在从URL触发视频播放。它只是一个按钮,打开AVPlayerController全屏。如果人们关闭它,用户可以返回到另一个项目,可能还有一个视频。在那里,他们可以点击视频开始,但是,当他们这样做的时候,我可以听到前一个播放器的音频,另一个VC和这个播放器一起播放。这种情况一直存在。我怎样才能避免这种情况

这是我的视频播放器课

import UIKit
import AVFoundation
import AVKit

class simpleVideoPlayer: UIViewController {

var playerController = AVPlayerViewController()
var player:AVPlayer?
var inputVideoUrl: String? = nil

func setupVideo() {

    self.player = AVPlayer()
    self.playerController.player = self.player

}

func playNext(url: URL) {

    let playerItem = AVPlayerItem.init(url: url)
    self.playerController.player?.replaceCurrentItem(with: playerItem)
    self.playerController.player?.play()
}

func setupVideoUrl(url: String) {
    inputVideoUrl = url
}

}
这是在我的viewcontroller中。它首先从我的服务器获取一个可能的广告的URL,如果失败,那么它将只加载“默认”视频


移除finishVideo中的观察者完成了此操作

@objc func finishVideo() {

    NotificationCenter.default.removeObserver(self)
    let url = URL(string: (article?.video_link?.files[0].link_secure)!)
    SimpleVideo.playerController.setValue(false, forKey: "requiresLinearPlayback")
    SimpleVideo.playNext(url: url!)
}
@objc func finishVideo() {

    NotificationCenter.default.removeObserver(self)
    let url = URL(string: (article?.video_link?.files[0].link_secure)!)
    SimpleVideo.playerController.setValue(false, forKey: "requiresLinearPlayback")
    SimpleVideo.playNext(url: url!)
}