Class AVPlaybackCoordinator

  • All Implemented Interfaces:
    NSObject
    Direct Known Subclasses:
    AVDelegatingPlaybackCoordinator, AVPlayerPlaybackCoordinator

    public class AVPlaybackCoordinator
    extends NSObject
    AVPlaybackCoordinator The playback coordinator negotiates playback state between a player, such as AVPlayer or a custom playback object represented by an implementation of the AVPlaybackCoordinatorPlaybackControlDelegate protocol, and a group of other connected players. AVPlaybackCoordinator will match rate and time of all connected players. This means that a local rate change or seek will be reflected in all connected players. Equally, a rate change or seek in any of the connected players will be reflected locally. AVPlaybackCoordinator does not manage the items in the play queue of the connected players, so it is up to player's owner to share and match the play queue across participants. The coordinator does, however, keep track of the identity of items enqueued in each player. This means that for one player's current time and rate to be applied on another player, both players must be playing the same item. If two players are playing different items, they each have independent playback states. When one of the two players transitions to the other's item later, it will match the time and rate of that other player. API-Since: 15.0
    • Constructor Detail

      • AVPlaybackCoordinator

        protected AVPlaybackCoordinator​(org.moe.natj.general.Pointer peer)
    • Method Detail

      • accessInstanceVariablesDirectly

        public static boolean accessInstanceVariablesDirectly()
      • allocWithZone

        public static AVPlaybackCoordinator allocWithZone​(org.moe.natj.general.ptr.VoidPtr zone)
      • automaticallyNotifiesObserversForKey

        public static boolean automaticallyNotifiesObserversForKey​(@NotNull
                                                                   @NotNull java.lang.String key)
      • beginSuspensionForReason

        @NotNull
        public @NotNull AVCoordinatedPlaybackSuspension beginSuspensionForReason​(@NotNull
                                                                                 @NotNull java.lang.String suspensionReason)
        beginSuspensionForReason: Informs the coordinator that its playback object is detached from the group for some reason and should not receive any playback commands from the coordinator. Use this to tell the coordinator that its player cannot, or should not, participate in coordinated playback temporarily. The coordinator will not respond to playback commands coming from the group and it will also not send any commands to the group. To resume in group playback, end a suspension by calling one of the suspension's end methods. [@note] See the description of AVPlaybackCoordinator subclasses for suspensions automatically begun on behalf of their playback objects, if any.
        Parameters:
        suspensionReason - Indicates the reason for the suspension that is shared with other participants. Can be a system-defined reason (see AVCoordinatedPlaybackSuspensionReason*) or a custom string.
      • cancelPreviousPerformRequestsWithTarget

        public static void cancelPreviousPerformRequestsWithTarget​(@NotNull
                                                                   @NotNull java.lang.Object aTarget)
      • cancelPreviousPerformRequestsWithTargetSelectorObject

        public static void cancelPreviousPerformRequestsWithTargetSelectorObject​(@NotNull
                                                                                 @NotNull java.lang.Object aTarget,
                                                                                 @NotNull
                                                                                 @NotNull org.moe.natj.objc.SEL aSelector,
                                                                                 @Nullable
                                                                                 @Nullable java.lang.Object anArgument)
      • classFallbacksForKeyedArchiver

        @NotNull
        public static @NotNull NSArray<java.lang.String> classFallbacksForKeyedArchiver()
      • classForKeyedUnarchiver

        @NotNull
        public static @NotNull org.moe.natj.objc.Class classForKeyedUnarchiver()
      • debugDescription_static

        public static java.lang.String debugDescription_static()
      • description_static

        public static java.lang.String description_static()
      • expectedItemTimeAtHostTime

        public CMTime expectedItemTimeAtHostTime​(CMTime hostClockTime)
        expectedItemTimeAtHostTime: Returns the item time (for the current item) that the coordinator expects to be playing at a given host clock time. This method is useful to decide if it is appropriate to end a suspension, e.g. a suspension with AVCoordinatedPlaybackSuspensionReasonStallRecovery, while other participants are continuing playback.
      • hash_static

        public static long hash_static()
      • instanceMethodSignatureForSelector

        public static NSMethodSignature instanceMethodSignatureForSelector​(org.moe.natj.objc.SEL aSelector)
      • instancesRespondToSelector

        public static boolean instancesRespondToSelector​(org.moe.natj.objc.SEL aSelector)
      • isSubclassOfClass

        public static boolean isSubclassOfClass​(org.moe.natj.objc.Class aClass)
      • keyPathsForValuesAffectingValueForKey

        @NotNull
        public static @NotNull NSSet<java.lang.String> keyPathsForValuesAffectingValueForKey​(@NotNull
                                                                                             @NotNull java.lang.String key)
      • otherParticipants

        @NotNull
        public @NotNull NSArray<? extends AVCoordinatedPlaybackParticipant> otherParticipants()
        [@property] otherParticipants The playback states of the other participants in the group. Use this property to create UI informing the local user about the state of other participants in the group. [@note] The coordinator posts AVPlaybackCoordinatorOtherParticipantsDidChangeNotification when the contents of the array changes.
      • participantLimitForWaitingOutSuspensionsWithReason

        public long participantLimitForWaitingOutSuspensionsWithReason​(@NotNull
                                                                       @NotNull java.lang.String reason)
        participantLimitForWaitingOutSuspensionsWithReason: Returns the maximum number of participants that can be in a group before the coordinator stops waiting out this particular suspensions reason. Default value is NSIntegerMax.
      • pauseSnapsToMediaTimeOfOriginator

        public boolean pauseSnapsToMediaTimeOfOriginator()
        [@property] pauseSnapsToMediaTimeOfOriginator Determines if participants should mirror the originator's stop time when pausing. If YES, all participants will seek to the originator's stop time after they pause. Use this if it is desirable to counteract any network delay incurred by communicating the originator's pause to the other participants. If NO, it's acceptable for participants to stop at slightly different offsets and a pause will not cause other participants' time to jump back.
      • resolveClassMethod

        public static boolean resolveClassMethod​(org.moe.natj.objc.SEL sel)
      • resolveInstanceMethod

        public static boolean resolveInstanceMethod​(org.moe.natj.objc.SEL sel)
      • setParticipantLimitForWaitingOutSuspensionsWithReason

        public void setParticipantLimitForWaitingOutSuspensionsWithReason​(long participantLimit,
                                                                          @NotNull
                                                                          @NotNull java.lang.String reason)
        setParticipantLimit:forWaitingOutSuspensionsWithReason: Sets the amount of participants that can join a group before the coordinator stops waiting for this particular suspension reason. This allows additional configuration for suspension reasons in the suspensionReasonsThatTriggerWaiting array. When the coordinator decides whether one participant's suspensions should cause others to wait, it will also consider this limit of participants currently in the group.
      • setPauseSnapsToMediaTimeOfOriginator

        public void setPauseSnapsToMediaTimeOfOriginator​(boolean value)
        [@property] pauseSnapsToMediaTimeOfOriginator Determines if participants should mirror the originator's stop time when pausing. If YES, all participants will seek to the originator's stop time after they pause. Use this if it is desirable to counteract any network delay incurred by communicating the originator's pause to the other participants. If NO, it's acceptable for participants to stop at slightly different offsets and a pause will not cause other participants' time to jump back.
      • setSuspensionReasonsThatTriggerWaiting

        public void setSuspensionReasonsThatTriggerWaiting​(@NotNull
                                                           @NotNull NSArray<java.lang.String> value)
        [@property] suspensionReasonsThatTriggerWaiting If the coordinator decides to delay playback to wait for others, it will wait out these reasons, but not others.
      • setVersion_static

        public static void setVersion_static​(long aVersion)
      • superclass_static

        public static org.moe.natj.objc.Class superclass_static()
      • suspensionReasons

        @NotNull
        public @NotNull NSArray<java.lang.String> suspensionReasons()
        [@property] suspensionReasons Describes why the coordinator is currently not able to participate in group playback. If the list of reasons is non-empty, the coordinator will not react to any changes of group playback state.
      • suspensionReasonsThatTriggerWaiting

        @NotNull
        public @NotNull NSArray<java.lang.String> suspensionReasonsThatTriggerWaiting()
        [@property] suspensionReasonsThatTriggerWaiting If the coordinator decides to delay playback to wait for others, it will wait out these reasons, but not others.
      • version_static

        public static long version_static()
      • useStoredAccessor

        @Deprecated
        public static boolean useStoredAccessor()
        Deprecated.