Greedykit est un ensemble de composants prêts à l'emploi écrits dans Swift pour prévenir les données médiatiques sensibles à exposer par des outils de capture d'écran dans iOS.
J'ai eu une fois la tâche d'empêcher la capture d'une vidéo enregistrée localement, mais DRM n'a pas fonctionné pour moi à cette fin, car FairPlay ne fonctionne qu'avec le contenu distant en streaming. Heureusement pour moi, j'ai trouvé un outil approprié dans AvFoundation, que j'ai dû adapter à mes besoins et enfin de mettre dans ce petit paquet.
Vous pouvez utiliser Swift Package Manager pour installer GreedyKit à l'aide de Xcode:
Vous pouvez utiliser des cocoapodes pour installer GreedyKit en ajoutant des lignes suivantes à votre Podfile :
target 'ApplicationName' do
pod 'GreedyKit'
endEnsuite, écrivez simplement la commande dans le terminal pour installer:
pod installAprès avoir installé le package, importez-le dans le projet de la manière habituelle:
import GreedyKitLe package comprend deux composants distincts mais similaires pour afficher des images et des vidéos qui peuvent modifier le mode de prévention de la capture à la demande.
Pour ajouter une image dans Uikit qui peut être cachée, vous pouvez utiliser l'emballage GreedyImageView autour de votre image:
// 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 Pour ajouter une vidéo dans Uikit qui peut être cachée, vous pouvez utiliser l'emballage GreedyPlayerView autour de votre 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 = trueVous pouvez trouver un exemple de la façon de l'utiliser dans le projet Exemples / iosgredykit.
Greedykit contient également plusieurs emballages autour des classes Uikit que vous pouvez utiliser dans Swiftui.
L'image est très simple. Vous avez juste besoin de créer un élément GreedyImage avec n'importe quelle type d'image (UIImage, Ciimage ou CGIMage) dans votre hiérarchie de vue:
VStack {
GreedyImage ( uiImage , preventsCapture : true )
} Créer un lecteur vidéo est également facile. Vous avez juste besoin de créer un élément GreedyPlayer dans votre hiérarchie et de y passer un AVPlayer , dont il dessinera le contenu:
VStack {
GreedyPlayer ( player : avPlayer , preventsCapture : true )
}Vous pouvez trouver un exemple de la façon de l'utiliser dans le projet Exemples / SwiftUigreedyKit.
Pour contribuer, utilisez le flux de travail GIT Suivez "Fork-and-Pull":
Remarque: assurez-vous de fusionner les derniers de "en amont" avant de faire une demande de traction!
Greedykit est disponible sous la licence du MIT. Voir le fichier de licence pour plus d'informations.