GreedyKit es un conjunto de componentes listos para usar escritos en Swift para evitar que los datos de los medios confidenciales estén expuestos por herramientas de captura de pantalla en iOS.
Una vez tuve la tarea de prevenir la captura de video grabado localmente, sin embargo, DRM no funcionó para mí para este propósito porque Fairplay solo funciona con la transmisión de contenido remoto. Afortunadamente para mí, encontré una herramienta adecuada en Avfoundation, que tuve que adaptar a mis necesidades y finalmente poner en este pequeño paquete.
Puede usar Swift Package Manager para instalar GreedyKit usando Xcode:
Puede usar Cocoapods para instalar GreedyKit agregando las siguientes líneas a su Podfile :
target 'ApplicationName' do
pod 'GreedyKit'
endLuego simplemente escriba el comando en el terminal para instalar:
pod installDespués de haber instalado el paquete, importárelo al proyecto de la manera habitual:
import GreedyKitEl paquete incluye dos componentes separados pero similares para mostrar imágenes y videos que pueden cambiar el modo de prevención de captura a pedido.
Para agregar una imagen en UIKIT que se puede ocultar, puede usar el envoltorio GreedyImageView alrededor de su imagen:
// Create image view similar to the regular UIView.
let imageView = GreedyImageView ( )
parentView . addSubbiew ( imageView )
// Add content to the created view.
// You can use either UIImage, CGImage or CIImage.
let image = UIImage ( named : " SecretImage " )
imageView . setImage ( image )
// When necessary, turn on the flag to prevent the content from being captured.
imageView . preventsCapture = true Para agregar un video en UIKIT que se puede ocultar, puede usar el envoltorio GreedyPlayerView alrededor de su AVPlayer :
// Create a wrapper around AVPlayer
let player = AVPlayer ( )
let playerView = GreedyPlayerView ( )
playerView . player = player
// Add some content to the player and manipulate it as you wish:
let playerItem = AVPlayerItem ( asset : localVideo )
player . replaceCurrentItem ( with : playerItem )
player . play ( )
// When necessary, turn on the flag to prevent the content from being captured.
playerView . preventsCapture = truePuede encontrar un ejemplo de cómo usarlo en el proyecto Ejemplos/iOSGreedyKit.
Greedykit también contiene varios envoltorios alrededor de las clases de Uikit que puedes usar en Swiftui.
La imagen es muy simple. Solo necesita crear un elemento GreedyImage con cualquier tipo de imagen (UIImage, CIImage o CGIMage) dentro de su jerarquía de vistas:
VStack {
GreedyImage ( uiImage , preventsCapture : true )
} Crear un reproductor de video también es fácil. Solo necesita crear un elemento GreedyPlayer dentro de la jerarquía de su vista y pasarle un AVPlayer , cuyo contenido dibujará:
VStack {
GreedyPlayer ( player : avPlayer , preventsCapture : true )
}Puede encontrar un ejemplo de cómo usarlo en el proyecto Ejemplos/SwiftuigreedyKit.
Para contribuir, use el siguiente flujo de trabajo de git "bifurcante":
Nota: ¡Asegúrese de fusionar lo último de "Upstream" antes de hacer una solicitud de extracción!
GreedyKit está disponible bajo la licencia MIT. Consulte el archivo de licencia para obtener más información.