【问题标题】:AVPlayerViewController memory leak/retain cycle?AVPlayerViewController 内存泄漏/保留周期?
【发布时间】:2020-03-22 13:19:48
【问题描述】:

我的应用程序一直存在问题,AVPlayerViewController 在被关闭后不会从内存中清除,它只是在每次演示后累积更多。

这是在 iOS 12 上,在一个空项目中尝试以下操作,我在 viewDidAppear 中执行此操作,例如在它被关闭几秒钟后自动使其弹出。如果你在 Xcode 底部的“Debug Memory Graph”工具中发现 AVPlayerViewController 保留在内存中并且有一堆实例,那么你会在一堆解雇之后注意到。

关键是让视频播放到最后,控件会重新弹出。

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(6)) { [weak self] in
        let assetURL = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")!

        let player = AVPlayer(url: assetURL)
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
        self?.navigationController?.present(playerViewController, animated: true) {
            playerViewController.player!.play()
        }
    }
}

【问题讨论】:

    标签: ios cocoa-touch avfoundation avplayer avplayerviewcontroller


    【解决方案1】:

    试试这个

    self?.navigationController?.present(playerViewController, animated: true) { [weak playerViewController]
            playerViewController?.player!.play()
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-12
      • 2013-02-09
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      相关资源
      最近更新 更多