Pausieren und Fortsetzen der Videoaufnahme für dieselbe Datei mit AVFoundation in iOS

8

Ich versuche herauszufinden, wie ich Funktionen implementieren kann, um die Videoaufnahme in einer einzelnen Sitzung wiederholt anzuhalten und fortzusetzen, aber jedes neue Segment (die aufgenommenen Segmente nach jeder Pause) mit AVFoundation zur gleichen Videodatei hinzuzufügen. Momentan speichere ich jedes Mal, wenn ich "stop" und dann "record" drücke, eine neue Videodatei in das iphone meines iPhones und beginne mit der Aufnahme in eine separate / neue Datei. Ich muss in der Lage sein, die "Aufnahme / Stopp" -Taste immer und immer wieder zu drücken ... nur Video aufnehmen & amp; Audio, wenn die Aufnahme aktiv ist ... Wenn Sie die "Fertig" -Taste drücken, haben Sie eine einzige AV-Datei mit allen Segmenten zusammen. Und das alles muss in derselben Aufnahmesitzung / Vorschau-Sitzung geschehen.

die einzige Möglichkeit, dies zu versuchen, ist, wenn die Schaltfläche "Fertig" gedrückt wird, nehmen jede einzelne Ausgabedatei und kombiniert sie zu einer einzigen Datei ... Aber ich bin ziemlich sicher, die Bearbeitungszeit, um grundsätzlich ein mehrere separate Clips zusammen sind nicht akzeptabel. Plus, es scheint nur so, als wäre das ein wirklich chaotisches & amp; unnötiger Weg, mit viel zu viel Code zu gehen.

Gibt es eine einfache Möglichkeit, die Videoaufnahme innerhalb einer einzigen Sitzung anzuhalten und die Aufnahme einfach in derselben Datei fortzusetzen? Oder irgendwelche anderen Ideen?

Wenn es nicht zu viel Mühe macht, würde mir der Beispielcode helfen ... Ich lerne immer noch & amp; Ich lerne mich selbst, also bin ich nicht großartig, wenn ich dem Jargon folge. Terminologie in Erklärungen. Danke

edit: Das ist das Projekt, mit dem ich anfange, AVFoundation zu lernen ... also das ist der Code, den ich ändern möchte, um die obige Funktionalität zu erreichen: Ссылка

    
Daniel McCarthy 16.02.2013, 01:17
quelle

3 Antworten

10

Anstatt die Filmdateiausgabe von der Aufnahmesitzung zu verwenden, könnten Sie AVCaptureVideoDataOutput verwenden und die Beispiele in Ihrer Stellvertretung an eine Instanz von AVAssetWriterInput übergeben. Dann könnten Sie die Vorschau von der Aufnahme entkoppeln. Wenn Ihr Delegat die Puffer nicht an den Asset-Writer weiterleitet, gibt es für diesen Teil keine Aufzeichnung.

Wenn Sie eine zweite (und nachfolgende) Sitzung in derselben Datei aufzeichnen möchten, müssen Sie die Zeitstempel so anpassen, dass sie von dem Zeitpunkt an, an dem Sie gestoppt haben, sequenziell sind. Sie müssen sicherstellen, dass Sie dies tun Nehmen Sie die gleiche Einstellung für Audio und Video vor, damit sie in der Senke bleiben. Also ein bisschen fummelig, aber sicherlich machbar.

Bearbeiten: Es gibt eine Beispiel-iPhone-App, die dies bei Ссылка demonstriert / p>

G

    
Geraint Davies 20.02.2013, 17:53
quelle
1

Im Allgemeinen verwende ich startRunning und stopRunning, wenn ich AVCaptureSession verwende. Ich nehme an, du wirst es tun.

Siehe die Dokumentation für AVCaptureSession.

    
Spectravideo328 16.02.2013 01:41
quelle
0

Sie können einfach HBRecorder verwenden. HBRecorder ist ein Videoaufnahme-Tool mit Pause / Start-Funktion & amp; schöne Animationen zwischen Videosegmenten.

    
Baig 08.11.2016 07:28
quelle