2011-11-23 11 views
13

Ho scritto un framework di animazione di base utilizzando Core Animation su iPhone. Ha la funzionalità per mettere in pausa e riprendere le animazioni e può anche eseguire animazioni all'ora specificata. Il mio problema di base è che non riesco a trovare un modo per esportare le mie animazioni in un file video (.mov, .avi, ecc.). Ho letto su AVAssetWriter e AVComposition ma non riesco a capire come farlo funzionare nel mio caso.Esporta CoreAnimation sul file video

Cercando su Internet il più vicino che sono riuscito a ottenere è stato facendo una lettura fotogramma per fotogramma delle mie animazioni. Anche per questo non sono riuscito a trovare un modo per farlo funzionare e non ho potuto scoprire se iPhone SDK avesse qualcosa da fare per questo tipo di lettura fotogramma per fotogramma nel mio caso. Mi sono anche avvicinato a questo question on stackoverflow e ancora non riuscivo a capire (scusa se sento di essere un principiante in quelle cose, ma non lo sono, semplicemente non capisco alcune cose)

Se qualcuno sa come farlo funzionare o anche come qualcosa di simile ad esso per favore condividere. E se non c'è modo, se conosci un altro modo per farlo usando OpenGL ES invece di CoreAnimation, condividilo anche tu.

+0

Dai uno sguardo allo AVMutableVideoComposition.animationTool. Sono abbastanza sicuro che è necessario creare una composizione AVMutable ed esportarla da AVAssetExportSession – Gabriele

+0

Grazie per la risposta. Ma ho provato entrambi, ma non sono riuscito a farli funzionare. Attualmente sto lavorando a una soluzione che legge le mie animazioni fotogramma per fotogramma nelle immagini. Sta funzionando e leggendo fotogramma per fotogramma che si ottiene ottenendo fotogramma programmando un timer per il mio metodo. Funziona per la lettura a 30 fps, ma voglio convertire le mie animazioni con molto più fps che viene rallentato a causa di NSTimer. Ora voglio sapere c'è un modo migliore per questo genere di cose? – Azeem

+1

Non correlato alla tua domanda, ma sei riuscito a ottenere un 'UIImage *' dalla tua animazione senza renderlo sullo schermo? Come? (renderInContext ignora le trasformazioni, quindi ha ucciso una idea che avevo qualche tempo fa =(). Ho del codice per fare un file video da una serie di immagini, lo vuoi? –

risposta

6

Verificare questa presentazione: http://www.slideshare.net/invalidname/advanced-media-manipulation-with-av-foundation Intorno a pagina 84 si parla di aggiungere animazioni alle composizioni video. Credo che questo ti aiuterà a ottenere ciò di cui hai bisogno.

EDIT: In particolare è necessario guardare al animationTool della vostra composizione video. Questo è un oggetto AVVideoCompositionCoreAnimationTool che consente di aggiungere un livello dell'anima core al video di output. Vedi anche questa domanda: Recording custom overlay on iPhone Mi dispiace, non ho il tempo di procurarti uno snippet di codice completo, ma in pratica hai impostato questo strumento di animazione della composizione video, quindi crea un AVAssetExportSession e imposta la sua videoComposition a quella che hai fatto.

+0

Grazie per la risposta. Questa è una risorsa molto preziosa ma non risolve il mio problema. – Azeem