AVPlayerLayer animiert Rahmenänderungen

8

Immer wenn ich den Rahmen von AVPlayerLayer ändere, wird das Video nicht sofort skaliert, sondern auf die neue Größe animiert.

Beispiel: Ich ändere den Rahmen von (0, 0, 100, 100) in (0, 0, 400, 400), der Rahmen der Ansicht wird sofort geändert, aber die Größe des Videos wird auf die neue Größe animiert.

Ist jemand auf dieses Problem gestoßen? Und wenn ja, kennt jemand eine Möglichkeit, die Standardanimation zu deaktivieren?

Danke!

    
Alpár 01.07.2011, 13:03
quelle

6 Antworten

17

Sie können versuchen, implizite Aktionen zu deaktivieren und Animationen der Länge Null zu verwenden:

%Vor%     
djromero 02.12.2011, 09:31
quelle
3

Das habe ich benutzt:

%Vor%

Ich hoffe, das hilft. Ich weiß nicht, ob es Best Practices gibt, aber es funktioniert für mich. Es scheint, dass, wenn ".frame" oder "setFrame" verwendet wird, Animationen zur Ebene hinzugefügt werden.

    
Atomicflare 16.10.2014 22:01
quelle
3

Der einfachste und sauberste Weg, um damit fertig zu werden, besteht darin, eine UIView-Unterklasse mit AVPlayerLayer als LayerClass zu erstellen. Die AVPlayerLayer verhält sich dabei wie eine normale UIView-Ebene. Sie können den Rahmen der Ansicht anstelle der Ebene ändern, und es werden keine impliziten Animationen ausgeführt.

AVPlayerLayerView.h

%Vor%

AVPlayerLayerView.m

%Vor%

Sie können dies jetzt tun:

%Vor%

Um den AVPlayerLayer mit einem AVPlayer zu verbinden, tun Sie dies einfach:

%Vor%     
Anton Holmberg 10.08.2016 22:41
quelle
1

Verwenden Sie?:

%Vor%     
iTux 17.08.2011 09:24
quelle
1

Hier ist was ich in Schnell mache, direkt nachdem ich die playerLayer frame :

geändert habe %Vor%     
budidino 20.02.2017 11:24
quelle
0

Wahrscheinlich wird das in einigen Fällen helfen:

Hinzufügen von benutzerdefiniertem 'setFrame:' Setter in der Ansicht, die die Player-Ebene enthält

%Vor%     
Nikita 11.01.2016 14:48
quelle

Tags und Links