-renderInContext:
è stato ampiamente utilizzato dal suo aspetto, ma con esso è impossibile eseguire il rendering del livello OpenGL, AVPreviewLayer (probabilmente perché è una sorta di strato OpenGL) e non è stato ancora possibile eseguire correttamente il rendering di un CATiledLayer.
Con iOS7 sono state introdotte 2 nuove API per ottenere schermate, una è -snapshotViewAfterScreenUpdates:
che restituisce una vista particolare (_UIReplicantView
) e -drawViewHierarchyInRect:afterScreenUpdates:
l'ultima è una sorta di sostituzione per -renderInContext
, sfortunatamente sembra che abbia gli stessi limiti.
The -snapshotViewAfterScreenUpdates: sembra funzionare anche con OpenGL e AVPreviewLayer, sfortunatamente una vista del genere non è molto utile se si vogliono fare particolari animazioni o usare il contenuto come sfondo di qualcosa (come un Uibutton). Ho provato a togliere il contenuto dalla vista restituita, ma non ho ancora avuto fortuna.
Qualcuno ha ancora provato?_UIReplicantView e snapshotViewAfterScreenAggiorna come ottenere il suo contenuto?
risposta
Ho affrontato esattamente questo problema, inizialmente abbiamo lavorato attorno ad esso collegando NSRunLoop e convertendo in un'immagine e quindi unendole. E 'stato davvero disordinato.
Poi abbiamo trovato un pezzo di codice che sembra risolvere questo problema, ma devi essere preparato a pensare fuori dagli schemi un po '.
Quella struttura registra un video di una UIWindow, in quel momento stavamo semplicemente fermando il record. Spingendolo attraverso un AVAssetImageGenerator (o qualcosa del genere), e afferrando l'immagine.
Come ho detto è un modo strano per risolverlo, ma sembra funzionare bene per noi.
Il codice per (ASScreenRecorder) può essere trovato in questa libreria qui.
https://github.com/alskipp/ASScreenRecorder
Uno del nostro menu di nel nostro prodotto era OpenGL e alcuni avevano sfondi video! E questo ha funzionato perfettamente per noi. Ma non posso essere sicuro se fosse qualcosa di particolare per la nostra implementazione e l'uso di OpenGL. Sicuramente funziona anche per le visualizzazioni della videocamera, come il suo spettacolo di video di esempio.
Sembra davvero un molto ma se funziona .. guarderò in quel – Andrea
Ciao eravate in grado di ottenere Immagine da UIReplicantView ?? Sto avendo lo stesso problema. Ho provato ASScreenRecorder sta bene, ma sta mostrando un'area nera in cui il video è in riproduzione, resto tutto a vista mostra. –
- 1. Come esportare tutti i numeri e il suo contenuto (Contenuto completo) per eccellere in JIRA?
- 2. Come ottenere la dimensione di struct e il suo contenuto in byte in golang?
- 3. Crea immagine bitmap da EditText e il suo contenuto
- 4. Prevenire la stampa di un div e il suo contenuto
- 5. index.php e protezione del suo contenuto
- 6. .gitignore whitelist sulla directory e il suo contenuto
- 7. Scarica la pagina html e il suo contenuto
- 8. UITextView non aggiorna il suo contenuto Dimensione
- 9. Selenio - come ottenere l'elemento e il suo sottoelementi di testo
- 10. UIImmagine da un UIView creato con snapshotViewAfterScreenAggiorna:
- 11. Come rendere la clip Canvas il suo contenuto in Flex?
- 12. Qt: Come ridimensionare una finestra per il suo nuovo contenuto
- 13. Come posso allineare un CheckBox con il suo contenuto?
- 14. gitignore e come ignorare un nome di directory comune e il suo contenuto
- 15. sostituire il componente con il suo contenuto - angolare 2
- 16. JavaScript: sottraendo tempo e ottenere il suo numero di minuti
- 17. Come faccio a prendere un ByteArrayInputStream e il suo contenuto è salvato come file sul filesystem
- 18. jquery come ottenere il contenuto incollato
- 19. Come ottenere il contenuto già letto
- 20. Come ottenere il contenuto html da UIWebView?
- 21. Come ottenere il contenuto html da XWalkView?
- 22. C'è un listener per quando WebView mostra il suo contenuto?
- 23. const vs non-const del contenitore e del suo contenuto
- 24. Da dove viene la funzione di aiuto pydoc di Python a ottenere il suo contenuto?
- 25. ottenere un elenco utilizzando il suo ID
- 26. Passare un argomento di raccolta senza decomprimere il suo contenuto
- 27. Come ottenere il contenuto da file da questo URL?
- 28. Come rimuovere una cartella e tutto il suo contenuto dalla directory corrente?
- 29. Come posso rimuovere un elemento html e il suo contenuto utilizzando RegEx
- 30. Come copiare una directory e il suo contenuto in una posizione esistente usando Python?
Ma cosa stai cercando di fare con la vista che restituisce 'snapshotViewAfterScreenUpdates'? puoi generare una UIImage da quella vista e usarla, ma non puoi accedere ai 'contenuti' del livello sottostante – gabuh
Hai mai provato a ottenere una UIImage da una _UIReplicantView? Almeno su iOS7 restituisce un'immagine vuota – Andrea
Non sono di fronte al codice, quindi controllerò quando arrivo a casa .. Ho un gioco e penso di usare uno di questi metodi per ottenere uno screenshot. Non ricordo esattamente quale. (Sto facendo il rendering di uno strato OpenGL nel gioco e lo screenshot funziona) Verificherò in seguito e pubblicherò di nuovo. – gabuh