gpt4 book ai didi

ios - 重复使用相同的 AVPlayer 和 AVPlayerLayer 还是每次都创建新的?

转载 作者:可可西里 更新时间:2023-11-01 02:59:35 28 4
gpt4 key购买 nike

如果需要在同一个 View 中播放多个视频,貌似有两种做法:(1)每次都新建AVPlayerLayers和AVPlayer;或 (2) 重用相同的。

假设您的类(class)设计用于播放多个视频,并且以下代码用于加载新视频:

    var player = AVPlayer()
var playerItem:AVPlayerItem?
var playerLayer:AVPlayerLayer?

// Get file path to <videoURL>
videoURL = getFilePath(videoURL)

// Create player & layer
playerItem = AVPlayerItem(URL: NSURL(fileURLWithPath: videoURL))
player = AVPlayer(playerItem: playerItem!)
playerLayer = AVPlayerLayer(player: player)

第二个选项,在创建 AVPlayerLayer 和 AVPlayer 之后,是重用它们。所以你可以用这个替换最后两行:

    player.replaceCurrentItemWithPlayerItem(playerItem!)

每个选项的优点/缺点是什么?使用选项 1 可以吗,还是被认为是浪费?

最佳答案

如果您尝试同时播放多个视频,则需要创建多个具有相应 AVPlayerLayers 的 AVPlayer。

但是如果您通过点击手势或滑动手势在多个视频之间切换,您可以回收两个 AVPlayer。一个用于播放当前视频,另一个用于预加载下一个。

或者,您也可以只使用一个 AVQueuePlayer 和一个 AVPlayerLayer 来排队您的项目。 AVQueuePlayer 自动预加载列表中的下一个项目。

关于ios - 重复使用相同的 AVPlayer 和 AVPlayerLayer 还是每次都创建新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35095419/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com