1
0
mirror of https://github.com/metabolist/metatext synced 2024-12-29 03:01:07 +01:00
metatext-app-ios-iphone-ipad/Caches/PlayerCache.swift
Justin Mazzocchi fe6aa0f115
Autoplay
2020-10-18 22:26:58 -07:00

28 lines
591 B
Swift

// Copyright © 2020 Metabolist. All rights reserved.
import AVKit
final class PlayerCache {
private let cache = NSCache<NSURL, AVQueuePlayer>()
private var allURLsCached = Set<URL>()
private init() {}
}
extension PlayerCache {
static let shared = PlayerCache()
func player(url: URL) -> AVQueuePlayer {
if let player = cache.object(forKey: url as NSURL) {
return player
}
let player = AVQueuePlayer(url: url)
cache.setObject(player, forKey: url as NSURL)
allURLsCached.insert(url)
return player
}
}