Cra*_*lot 9 video avfoundation ios avplayer avplayerlayer
如果你需要在同一个视图中播放多个视频,似乎有两种方法:(1)每次创建新的AVPlayerLayers和AVPlayers; 或(2)重复使用相同的.
假设您的课程设计为播放多个视频,以下代码用于加载新视频:
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)
Run Code Online (Sandbox Code Playgroud)
在创建AVPlayerLayer和AVPlayer之后,第二个选项是重用它们.所以你可以用这个代替最后两行:
player.replaceCurrentItemWithPlayerItem(playerItem!)
Run Code Online (Sandbox Code Playgroud)
每个选项的优缺点是什么?是否可以使用选项1,还是被认为是浪费?
小智 2
如果您尝试同时播放多个视频,则需要创建多个带有相应 AVPlayerLayers 的 AVPlayer。
但是,如果您通过点击手势或滑动手势在多个视频之间切换,则可以回收两个 AVPlayer。一个用于播放当前视频,另一个用于预加载下一个视频。
或者,您也可以只使用一个 AVQueuePlayer 和一个 AVPlayerLayer 并将您的项目排队。AVQueuePlayer 自动预加载列表中的下一个项目。
| 归档时间: |
|
| 查看次数: |
720 次 |
| 最近记录: |