2010-08-04 17 views
9

Ich habe den besten Weg, um herauszufinden, von einem Video zur nächsteniPhone reibungsloser Übergang von einem Video auf einem anderen

Grundidee für den Übergang: Ein Beispiel wäre, dass es ein Video von einer Person zu Fuß ist ... ..der Benutzer tippt auf das Video und ein nahtloser Übergang zu einem Video einer laufenden Person (über vereinfachtes Beispiel)

Mein erster Gedanke war, 2 Movie-Player zu erstellen und Übergänge zwischen den 2 View-Elementen zu verwenden. Aber der Movie-Player unterstützt das nicht.

das aktuelle Video anhalten, neuen Inhalt laden und dann starten, ist eine Lösung, aber nicht sehr elegant. Wir machen ein interaktives Verkaufstool für unsere Mitarbeiter und wir wollen, dass es so professionell wie möglich aussieht.

AKTUELLER GEDANKEN: Wenn es einen Beispielcode für AVPlayer gäbe, könnte ich AVVideoComposition verwenden, um zwischen den Videos zu wechseln? Aber Details darüber, wie das passieren könnte, scheinen derzeit nicht verfügbar zu sein.

MÖGLICHER HINWEIS: Ich dachte, das wäre einfach, da ich eine App namens Live Cams HD gekauft habe, die 16 verschiedene Video-Feeds gleichzeitig anzeigt.

Irgendwelche Ideen? Danke im Voraus!

+0

AVQueuePlayer, der in iOS 4.1 debütierte, schien wie eine natürliche Lösung, aber ich habe immer noch Probleme, einen reibungslosen Übergang von einem Clip zum nächsten zu bekommen. –

+0

Irgendwelche Fortschritte bei diesem Problem? – Rizon

+0

Sie müssen actionAtItemEnd für den Warteschlangen-Player auf AVPlayerActionAtItemEndAdvance festlegen und mindestens zwei Kopien desselben Videos (AVPlayerItem) gleichzeitig in der Warteschlange haben, damit der Warteschlangenspieler ordnungsgemäß zum nächsten Element weitergeschaltet werden kann.Es wird einen kurzen Flash dazwischen geben, aber ich fand das akzeptabel und leicht zu reparieren, indem ich den Hintergrund der Elternansicht als einen Screenshot des ersten Frames des Videos einstelle. –

Antwort

0

Nachdem das erste Video jeden Frame außer dem letzten abgespielt hat, wechseln Sie schnell zu einer Ansicht mit einem Bild des letzten Frames (im Grunde der letzte Frame) und dann wechseln Sie in eine Ansicht mit dem Bild des ersten Rahmen des nächsten Videos und starten Sie diesen.

Oder Sie könnten eine Animation mit all Ihren Frames (Programmierung Ihrer Videos) erstellen, die es anpassbar macht, aber die Qualität wird wahrscheinlich nicht so gut sein und die CPU-Nutzung kann spike, so dass Sie einen Anruf tätigen müssen zu diesem einen.

8

Steve, die kurze Antwort ist, dass Sie nicht in der Lage sein werden, die gewünschten Ergebnisse mit AVPlayer zu erzielen. Die h.264 Videologik, die in iOS enthalten ist, ist wirklich großartig, um Video und Video/Audio zusammen zu spielen, aber es ist wirklich schlecht beim Starten/Stoppen und Wechseln von einem Clip zu einem anderen. Der Grund ist, dass es eine Menge Pufferung gibt, die passieren muss, um ein h.264-Video in Hardware zu laden und zu starten. Im Grunde müssen Sie Ihren eigenen Code rollen, der UIImage/CGImageRef für Ihre Ansichten so einstellt, dass Sie einfach von einem Clip zum anderen wechseln können, indem Sie einfach von einem Array von UIImage-Objekten zu einem anderen wechseln. Natürlich ist das leicht zu sagen, aber nicht so einfach zu implementieren.

Was ich vorschlagen würde, ist, dass Sie vorhandenen Code, der diese Logik bereits implementiert, anstatt Ihre eigenen rollen. Schauen Sie sich zum Beispiel die Demo-App StreetFighter an. Es zeigt, wie ein sehr einfaches Spiel wie das iPhone UI mit einer Reihe von Clips konstruiert werden kann, die einen Charakter zeigen, der einen Tritt, einen Schlag oder einen Feuerball wirft. Die Ergebnisse sieht wie folgt aus:

enter image description here

ich auch einen Blog-Post über seamless-video-looping-on-ios schrieb nach oben. Sie können natürlich Ihren eigenen Code erstellen, um all dies zu tun, aber ich würde vorschlagen, mehr über meine Bibliothek auf der verlinkten Website zu lesen, da Sie dadurch viel Zeit sparen.

Verwandte Themen