Contents

AVSynchronizedLayer

A Core Animation layer that derives its timing from a player item so that you can synchronize layer animations with media playback.

Declaration

class AVSynchronizedLayer

Overview

You can create an arbitrary number of synchronized layers from the same AVPlayerItem object.

A synchronized layer is similar to a CATransformLayer object in that it doesn’t display anything itself, it just confers state upon its layer subtree. AVSynchronizedLayer confers its timing state, synchronizing the timing of layers in its subtree with that of a player item.

Any CoreAnimation layer with animation property set that is added as a sublayer of AVSynchronizedLayer should set the animation’s beginTime property to a non-zero positive value so animations will be interpreted on the player item’s timeline. CoreAnimation replaces the default beginTime of 0.0 with CACurrentMediaTime(). To start the animation from time 0, use a small positive value like AVCoreAnimationBeginTimeAtZero.

You might use a layer as shown in the following example:

AVPlayerItem *playerItem = <#Get a player item#>;
CALayer *superLayer =  <#Get a layer#>;
// Set up a synchronized layer to sync the layer timing of its subtree
// with the playback of the playerItem/
AVSynchronizedLayer *syncLayer = [AVSynchronizedLayer synchronizedLayerWithPlayerItem:playerItem];
[syncLayer addSublayer:<#Another layer#>];    // These sublayers will be synchronized.
[superLayer addSublayer:syncLayer];

Topics

Creating a synchronized layer

Managing the player item

Supporting types

See Also

Presentation