O GreedyKit é um conjunto de componentes prontos para uso escritos no SWIFT para impedir que dados de mídia sensíveis sejam expostos pelas ferramentas de captura de tela no iOS.
Certa vez, tive a tarefa de impedir a captura de vídeo gravado localmente, no entanto, o DRM não funcionou para mim para esse fim, porque o FairPlay só funciona com o streaming de conteúdo remoto. Felizmente para mim, encontrei uma ferramenta adequada em Avfoundation, que tive que me adaptar às minhas necessidades e finalmente coloquei neste pequeno pacote.
Você pode usar o Swift Package Manager para instalar o GreedyKit usando o Xcode:
Você pode usar o Cocoapods para instalar GreedyKit adicionando as seguintes linhas ao seu Podfile :
target 'ApplicationName' do
pod 'GreedyKit'
endEm seguida, basta escrever o comando no terminal para instalar:
pod installDepois de instalar o pacote, importe -o para o projeto da maneira usual:
import GreedyKitO pacote inclui dois componentes separados, mas semelhantes, para exibir imagens e vídeos que podem alterar o modo de prevenção de captura sob demanda.
Para adicionar uma imagem no Uikit que pode ser oculta, você pode usar o invólucro GreedyImageView em torno da sua imagem:
// 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 adicionar um vídeo no Uikit que pode ser oculto, você pode usar o Wrapper GreedyPlayerView em torno do seu 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 = trueVocê pode encontrar um exemplo de como usá -lo no projeto Exemplos/iosgreedyKit.
O GreedyKit também contém vários invólucros nas aulas do Uikit que você pode usar no SwiftUi.
A imagem é muito simples. Você só precisa criar um elemento GreedyImage com qualquer tipo de imagem (Uiimage, Ciimage ou cGimage) dentro da sua hierarquia de visualizações:
VStack {
GreedyImage ( uiImage , preventsCapture : true )
} Criar um player de vídeo também é fácil. Você só precisa criar um elemento GreedyPlayer em sua hierarquia de visualizações e passar um AVPlayer , cujo conteúdo ele desenhará:
VStack {
GreedyPlayer ( player : avPlayer , preventsCapture : true )
}Você pode encontrar um exemplo de como usá -lo no projeto Exemplos/SwiftuigreedyKit.
Para contribuir, use o fluxo de trabalho Git "Fork-and-Pull": Siga:
Nota: Certifique -se de mesclar as últimas novidades de "Upstream" antes de fazer uma solicitação de tração!
O GreedyKit está disponível sob a licença do MIT. Consulte o arquivo de licença para obter mais informações.