Kapitel in Videos für das iPhone

Ist es möglich, Kapitel in Videos für das iPhone in einer Anwendung zu verwenden?

Beispielsweise: Ich habe ein 3 Minuten Video zu spielen. Ich habe Kapitel 1 beginnend bei 0s, Kapitel 2 bei 50s, Kapitel 3 bei 95s.

Kann ich das Video nach 50s (Kapitel 2) bis zum Ende plattieren? Kann ich es nur das Kapitel 2 von 50s bis 95s spielen lassen?

Meine Frage betrifft nicht das Hinzufügen von Kapiteln zu einem Video. Ich möchte wissen, ob dieses Verhalten auf dem iPhone verfügbar ist.

0
hinzugefügt bearbeitet
Ansichten: 11

3 Antworten

Dies ist definitiv möglich, indem Sie die nicht dokumentierte Nachricht setCurrentTime an MPMoviePlayerController senden. Es benötigt einen Parameter vom Typ double, der die Wiedergabeposition in Sekunden angibt. Hier finden Sie ein kurzes Beispiel:

Erweitern Sie den MPMoviePlayerController, um Compiler-Warnungen zu vermeiden:

@interface MPMoviePlayerController (extended)
-(void)setCurrentTime:(double)seconds;
@end

Dann können Sie es anrufen, wo Sie es brauchen - vor dem Start oder während der Wiedergabe.

MPMoviePlayerController* player = [[ MPMoviePlayerController alloc] initWithContentURL:url ];
[ player setCurrentTime:95.0 ];
[ player play ];
0
hinzugefügt
Apple hat damit begonnen, Apps abzulehnen, die unveröffentlichte APIs verwenden. Und selbst wenn Ihre App akzeptiert wird, kann sie nach jedem Betriebssystemupdate beschädigt werden. Verwenden Sie nicht unveröffentlichte APIs wie diese in App Store-Anwendungen, so zwingend sie auch sein mögen.
hinzugefügt der Autor Andrey Tarantsov, Quelle

Das iPhone SDK 3.0+ verfügt über eine neue MPMoviePlayerController.initialPlaybackTime-Eigenschaft zum Festlegen der Startzeit für die Filmwiedergabe. Dies wird auf die nächste frühere Keyframe-Zeit "gerundet", liefert also keine exakte Anfangspositionierung, sondern ist ziemlich nah.

0
hinzugefügt
Das Problem ist, nicht alle Videos haben viele Keyframes. Diese Funktion kann Genauigkeitsprobleme verursachen, wenn die Keyframe-Zeit weit von der erforderlichen Zeit entfernt ist.
hinzugefügt der Autor Raptor, Quelle

player.currentPlaybackTime = Zeit;

0
hinzugefügt