Pause & reprise de capture vidéo pour le même fichier avec AVFoundation dans iOS
Je suis à essayer de comprendre comment je peux implémenter des fonctionnalités à plusieurs reprises de mettre en pause et reprendre la capture vidéo en une seule séance, mais ont chaque nouveau segment (la capture d'segments après chaque pause) pour le même fichier vidéo, avec AVFoundation. Actuellement, chaque fois que j'appuie sur "stop" puis "enregistrer" encore une fois, il enregistre uniquement un nouveau fichier vidéo de mon iphone album et commence à capturer à un autre/nouveau fichier. J'ai besoin d'être en mesure d'appuyer sur "record/stop" bouton plus et plus... seulement de capturer de la vidéo & audio lorsque l'enregistrement est actif... puis, quand le bouton "terminé" est pressé, ont un seul AV fichier avec tous les segments de l'ensemble. Et tout cela devra se faire dans la même session de capture /aperçu de la session.
la seule façon que je peux penser d'essayer c'est lorsque le bouton "terminé" est pressé, en prenant chaque fichier de sortie et de les combiner en un seul fichier... Mais je ne suis sûr que le temps de traitement de fondamentalement coller un tas de clips distincts ensemble ne sera pas acceptable. De Plus, il semble juste que ce sera une très confus & inutile de chemin à faire à ce sujet, avec beaucoup trop de code.
Est-il un moyen simple de juste mettre une vidéo en pause la capture à l'intérieur d'une même session et il vous suffit de reprendre la capture dans le même fichier? Ou d'autres idées?
Si elle n'est pas trop mal, des exemples de code serait de m'aider à sortir d'une tonne... je suis encore à apprendre & enseignement de moi-même, donc je ne suis pas une grande place à la suite de l'lingo & terminologie dans les explications. Grâce
edit: c'est le projet que je suis en commençant par apprendre AVFoundation... donc c'est le code que je cherche à modifier pour atteindre le dessus de la fonctionnalité: http://developer.apple.com/library/ios/#samplecode/AVCam/Introduction/Intro.html
Avez-vous la solution?
OriginalL'auteur Daniel McCarthy | 2013-02-16
Vous devez vous connecter pour publier un commentaire.
Au lieu d'utiliser le fichier de la vidéo de sortie à partir de la session de capture, vous pouvez utiliser AVCaptureVideoDataOutput et dans votre délégué, passer les échantillons à une instance de AVAssetWriterInput. Ensuite, vous pouvez dissocier la prévisualisation à partir de l'enregistrement. Si votre délégué ne transmet pas les tampons à l'actif de l'écrivain, il n'y a pas d'enregistrement pour la partie.
Lorsque vous voulez commencer l'enregistrement d'un second (et les suivantes) session sur le même fichier, vous devez ajuster l'horodatage de sorte qu'ils sont séquentiels à partir du point où vous vous êtes arrêté, et vous auriez besoin pour vous assurer que vous faire la même correction à la fois audio et vidéo, de sorte qu'ils restent dans l'évier. Donc un peu délicat, mais certainement réalisable.
Edit: il y a un exemple de l'application iPhone qui illustre ce à http://www.gdcl.co.uk/2013/02/20/iPhone-Pause.html
G
J'ai un peu de code. Je vais la ranger dans un publiable de l'échantillon. Ping-moi si vous ne voyez rien dans un délai de quelques jours.
Davies - je suis à la recherche d'exactement la même chose. Pouvez-vous s'il vous plaît poster ici votre code sur github. Moi aussi, je ne trouve aucun article ou par exemple sur cette. Merci
merci beaucoup, je ne peux pas attendre de le voir. J'ai trouvé un autre moyen pour la même fin, c'est à dire via AVMutableComposition, l'enregistrement des fichiers séparés puis déchirer les images apart & combiner le tout ensemble à la fin.... mais le temps de traitement pour compiler & de créer la composition clip au moment de l'exécution est un cauchemar absolu... Merci encore, & impatient de votre mise à jour 🙂
J'ai téléchargé l'échantillon et a modifié le texte afin d'inclure un lien. N'hésitez pas à entrer en contact si vous avez des commentaires ou des questions.
OriginalL'auteur Geraint Davies
En général, j'utilise startRunning et stopRunning si je suis en utilisant AVCaptureSession. Je suis en supposant que vous.
Consultez la documentation de AVCaptureSession.
Correct parce que lorsque vous instanciez un AVCaptureVideoPreviewLayer, vous n'avez qu'à une session particulière. Avez-vous été à la recherche à garder l'aperçu de la couche d'aller et d'être en mesure de démarrer la capture/arrêter la capture? semblable à l'enregistreur vidéo?
Oui, j'ai besoin de garder l'aperçu de la couche de passe. l'utilisateur doit être en mesure de point de capture pour quelques secondes, arrêter.... regarder autre chose, point, de capturer, de s'arrêter.... regarder autre chose, point, shoot, stop.... etc, le tout dans la même session. Puis quand c'est fait, avoir un seul fichier vidéo qui joue juste chaque capture en une seule qui coule de fichier. J'ai aussi modifié ma question un peu, j'espère, un littler plus clair & faire un peu plus de sens
Daniel, pouvez-vous s'il vous plaît poster un échantillon de code lorsque vous avez terminé? Je cherche à faire exactement la même chose et pour la vie de moi ne peut pas trouver un exemple de code n'importe où
Avez-vous la solution?
OriginalL'auteur Khaled Barazi
Vous pouvez simplement utiliser HBRecorder. HBRecorder est une vidéo dans un studio d'enregistrement avec pause/début de la fonction & de belles animations entre les segments vidéo.
OriginalL'auteur Baig