swift - 使用视频(AVPlayer)防止内存泄漏、高内存使用?

标签 swift video memory memory-leaks avplayer

我制作了一个应用程序,其中有一个 View Controller ,其中有一个 View 和一些按钮。在 View 中,我显示了一个 2 秒长的视频,该视频不断重复。

我使用仪器来检查我的内存使用情况。它向我展示了我的应用程序在视频所在的 View Controller 上的内存使用量不断增加。 30 秒后,我的应用程序内存使用量达到 1GB。

在代码中,我创建了一个弱变量,它会破坏保留周期,因此当我从显示视频的 View Controller 转到另一个 View Controller 时,我的内存使用量会下降。

但是:我的目的是在每次视频开始重复时降低内存使用量,或者还有其他我应该考虑做的事情吗?

提前谢谢您!

backView 是我用来显示视频的 View 。

//     Set up the video player.

var startVideo = true

private func playVideo(exercise : String, type : String) {

    guard let path = Bundle.main.path(forResource: exercise, ofType: type) else {
        debugPrint("video.mp4 not found")
        return
    }
    weak var player = AVPlayer(url: URL(fileURLWithPath: path))
    let playerController = AVPlayerViewController()
    playerController.player = player
    let playerLayerAV = AVPlayerLayer(player: player)
    //now we set the size of frame to be like the view ("backview")
    playerLayerAV.frame = backView.bounds
    // the backview is the view i'm using it to insert a video
    backView.layer.addSublayer(playerLayerAV)
    player!.play()

    if startVideo == true {
        player!.play()
    }else if startVideo == false {
        player?.pause()
    }

    NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: player!.currentItem, queue: .main) { _ in
        player!.seek(to: kCMTimeZero)
        player!.play()
    }

}

最佳答案

尝试以下方法来连续循环播放视频

let playerItem = AVPlayerItem(url: selectedItem)
let player = AVQueuePlayer(playerItem: playerItem)
let playerLooper = AVPlayerLooper(player: player, templateItem: playerItem)
let playerLayer = AVPlayerLayer(player: player)

player.play()

关于swift - 使用视频(AVPlayer)防止内存泄漏、高内存使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52768087/

相关文章:

c# - 扫描 64 位内存?

c - 生成数据通信流图(C程序,profiling)

objective-c - 将实例 ID 打印到 NSLog?

ios - 为多个 Scheme 环境安装 Pod

ios - Swift 参数中的默认关键字

html - 在 Safari iOS 14.2 上自动播放视频 HTML

javascript - 在mvc中播放.mp4视频时如何停止 slider ?

swift - PreferredStatusBarHidden 在调用 setNeedsStatusBarAppearanceUpdate() 后不更新

ios - 适用于 iPhone/iPad/iOS 的快速精益 PDF 查看器 - 提示和提示?

Python程序跨计算机操作netflix同时同步视频