Package apple.avfoundation
Class AVSampleBufferRenderSynchronizer
- java.lang.Object
-
- org.moe.natj.general.NativeObject
-
- org.moe.natj.objc.ObjCObject
-
- apple.NSObject
-
- apple.avfoundation.AVSampleBufferRenderSynchronizer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceAVSampleBufferRenderSynchronizer.Block_addBoundaryTimeObserverForTimesQueueUsingBlockstatic interfaceAVSampleBufferRenderSynchronizer.Block_addPeriodicTimeObserverForIntervalQueueUsingBlockstatic interfaceAVSampleBufferRenderSynchronizer.Block_removeRendererAtTimeCompletionHandler-
Nested classes/interfaces inherited from class apple.NSObject
NSObject.Block_accessibilityActivateBlock_ret, NSObject.Block_accessibilityActivationPointBlock_ret, NSObject.Block_accessibilityAttributedHintBlock_ret, NSObject.Block_accessibilityAttributedLabelBlock_ret, NSObject.Block_accessibilityAttributedUserInputLabelsBlock_ret, NSObject.Block_accessibilityAttributedValueBlock_ret, NSObject.Block_accessibilityContainerTypeBlock_ret, NSObject.Block_accessibilityCustomActionsBlock_ret, NSObject.Block_accessibilityCustomRotorsBlock_ret, NSObject.Block_accessibilityDecrementBlock_ret, NSObject.Block_accessibilityElementsBlock_ret, NSObject.Block_accessibilityElementsHiddenBlock_ret, NSObject.Block_accessibilityFrameBlock_ret, NSObject.Block_accessibilityHeaderElementsBlock_ret, NSObject.Block_accessibilityHintBlock_ret, NSObject.Block_accessibilityIdentifierBlock_ret, NSObject.Block_accessibilityIncrementBlock_ret, NSObject.Block_accessibilityLabelBlock_ret, NSObject.Block_accessibilityLanguageBlock_ret, NSObject.Block_accessibilityMagicTapBlock_ret, NSObject.Block_accessibilityNavigationStyleBlock_ret, NSObject.Block_accessibilityPathBlock_ret, NSObject.Block_accessibilityPerformEscapeBlock_ret, NSObject.Block_accessibilityRespondsToUserInteractionBlock_ret, NSObject.Block_accessibilityShouldGroupAccessibilityChildrenBlock_ret, NSObject.Block_accessibilityTextualContextBlock_ret, NSObject.Block_accessibilityTraitsBlock_ret, NSObject.Block_accessibilityUserInputLabelsBlock_ret, NSObject.Block_accessibilityValueBlock_ret, NSObject.Block_accessibilityViewIsModalBlock_ret, NSObject.Block_automationElementsBlock_ret, NSObject.Block_isAccessibilityElementBlock_ret, NSObject.Block_setAccessibilityActivateBlock, NSObject.Block_setAccessibilityActivationPointBlock, NSObject.Block_setAccessibilityAttributedHintBlock, NSObject.Block_setAccessibilityAttributedLabelBlock, NSObject.Block_setAccessibilityAttributedUserInputLabelsBlock, NSObject.Block_setAccessibilityAttributedValueBlock, NSObject.Block_setAccessibilityContainerTypeBlock, NSObject.Block_setAccessibilityCustomActionsBlock, NSObject.Block_setAccessibilityCustomRotorsBlock, NSObject.Block_setAccessibilityDecrementBlock, NSObject.Block_setAccessibilityElementsBlock, NSObject.Block_setAccessibilityElementsHiddenBlock, NSObject.Block_setAccessibilityFrameBlock, NSObject.Block_setAccessibilityHeaderElementsBlock, NSObject.Block_setAccessibilityHintBlock, NSObject.Block_setAccessibilityIdentifierBlock, NSObject.Block_setAccessibilityIncrementBlock, NSObject.Block_setAccessibilityLabelBlock, NSObject.Block_setAccessibilityLanguageBlock, NSObject.Block_setAccessibilityMagicTapBlock, NSObject.Block_setAccessibilityNavigationStyleBlock, NSObject.Block_setAccessibilityPathBlock, NSObject.Block_setAccessibilityPerformEscapeBlock, NSObject.Block_setAccessibilityRespondsToUserInteractionBlock, NSObject.Block_setAccessibilityShouldGroupAccessibilityChildrenBlock, NSObject.Block_setAccessibilityTextualContextBlock, NSObject.Block_setAccessibilityTraitsBlock, NSObject.Block_setAccessibilityUserInputLabelsBlock, NSObject.Block_setAccessibilityValueBlock, NSObject.Block_setAccessibilityViewIsModalBlock, NSObject.Block_setAutomationElementsBlock, NSObject.Block_setIsAccessibilityElementBlock, NSObject.Function_instanceMethodForSelector_ret, NSObject.Function_methodForSelector_ret
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAVSampleBufferRenderSynchronizer(org.moe.natj.general.Pointer peer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static booleanaccessInstanceVariablesDirectly()@NotNull java.lang.ObjectaddBoundaryTimeObserverForTimesQueueUsingBlock(@NotNull NSArray<? extends NSValue> times, @Nullable dispatch_queue_t queue, @NotNull AVSampleBufferRenderSynchronizer.Block_addBoundaryTimeObserverForTimesQueueUsingBlock block)addBoundaryTimeObserverForTimes:queue:usingBlock: Requests invocation of a block when specified times are traversed during normal rendering.@NotNull java.lang.ObjectaddPeriodicTimeObserverForIntervalQueueUsingBlock(CMTime interval, @Nullable dispatch_queue_t queue, @NotNull AVSampleBufferRenderSynchronizer.Block_addPeriodicTimeObserverForIntervalQueueUsingBlock block)addPeriodicTimeObserverForInterval:queue:usingBlock: Requests invocation of a block during rendering to report changing time.voidaddRenderer(@NotNull AVQueuedSampleBufferRendering renderer)addRenderer: Adds a renderer to the list of renderers under the synchronizer's control.static AVSampleBufferRenderSynchronizeralloc()static AVSampleBufferRenderSynchronizerallocWithZone(org.moe.natj.general.ptr.VoidPtr zone)static booleanautomaticallyNotifiesObserversForKey(@NotNull java.lang.String key)static voidcancelPreviousPerformRequestsWithTarget(@NotNull java.lang.Object aTarget)static voidcancelPreviousPerformRequestsWithTargetSelectorObject(@NotNull java.lang.Object aTarget, @NotNull org.moe.natj.objc.SEL aSelector, @Nullable java.lang.Object anArgument)static @NotNull NSArray<java.lang.String>classFallbacksForKeyedArchiver()static @NotNull org.moe.natj.objc.ClassclassForKeyedUnarchiver()CMTimecurrentTime()currentTime Returns the current time of the synchronizer.static java.lang.StringdebugDescription_static()booleandelaysRateChangeUntilHasSufficientMediaData()[@property] delaysRateChangeUntilHasSufficientMediaData Indicates whether the playback should be started immediately on rate change request.static java.lang.Stringdescription_static()static longhash_static()AVSampleBufferRenderSynchronizerinit()static NSObject.Function_instanceMethodForSelector_retinstanceMethodForSelector(org.moe.natj.objc.SEL aSelector)static NSMethodSignatureinstanceMethodSignatureForSelector(org.moe.natj.objc.SEL aSelector)static booleaninstancesRespondToSelector(org.moe.natj.objc.SEL aSelector)static booleanisSubclassOfClass(org.moe.natj.objc.Class aClass)static @NotNull NSSet<java.lang.String>keyPathsForValuesAffectingValueForKey(@NotNull java.lang.String key)static AVSampleBufferRenderSynchronizernew_objc()floatrate()[@property] rate Playback rate.voidremoveRendererAtTimeCompletionHandler(@NotNull AVQueuedSampleBufferRendering renderer, CMTime time, @Nullable AVSampleBufferRenderSynchronizer.Block_removeRendererAtTimeCompletionHandler completionHandler)removeRenderer:atTime:completionHandler: Removes a renderer from the list of renderers under the synchronizer's control.voidremoveTimeObserver(@NotNull java.lang.Object observer)removeTimeObserver: Cancels a previously registered time observer.@NotNull NSArray<?>renderers()[@property] renderers Array of idcurrently attached to the synchronizer. static booleanresolveClassMethod(org.moe.natj.objc.SEL sel)static booleanresolveInstanceMethod(org.moe.natj.objc.SEL sel)voidsetDelaysRateChangeUntilHasSufficientMediaData(boolean value)[@property] delaysRateChangeUntilHasSufficientMediaData Indicates whether the playback should be started immediately on rate change request.voidsetRate(float value)[@property] rate Playback rate.voidsetRateTime(float rate, CMTime time)setRate:time: Sets the timebase's time and rate.voidsetRateTimeAtHostTime(float rate, CMTime time, CMTime hostTime)setRate:time:atHostTime: Simultaneously sets the playback rate and the relationship between the current time and host time.static voidsetVersion_static(long aVersion)static org.moe.natj.objc.Classsuperclass_static()@NotNull CMTimebaseReftimebase()[@property] timebase The synchronizer's rendering timebase, which governs how time stamps are interpreted.static booleanuseStoredAccessor()Deprecated.static longversion_static()-
Methods inherited from class apple.NSObject
accessibilityActivate, accessibilityActivateBlock, accessibilityActivationPoint, accessibilityActivationPointBlock, accessibilityAssistiveTechnologyFocusedIdentifiers, accessibilityAttributedHint, accessibilityAttributedHintBlock, accessibilityAttributedLabel, accessibilityAttributedLabelBlock, accessibilityAttributedUserInputLabels, accessibilityAttributedUserInputLabelsBlock, accessibilityAttributedValue, accessibilityAttributedValueBlock, accessibilityContainerType, accessibilityContainerTypeBlock, accessibilityCustomActions, accessibilityCustomActionsBlock, accessibilityCustomRotors, accessibilityCustomRotorsBlock, accessibilityDecrement, accessibilityDecrementBlock, accessibilityDirectTouchOptions, accessibilityDragSourceDescriptors, accessibilityDropPointDescriptors, accessibilityElementAtIndex, accessibilityElementCount, accessibilityElementDidBecomeFocused, accessibilityElementDidLoseFocus, accessibilityElementIsFocused, accessibilityElements, accessibilityElementsBlock, accessibilityElementsHidden, accessibilityElementsHiddenBlock, accessibilityFrame, accessibilityFrameBlock, accessibilityHeaderElementsBlock, accessibilityHint, accessibilityHintBlock, accessibilityIdentifierBlock, accessibilityIncrement, accessibilityIncrementBlock, accessibilityLabel, accessibilityLabelBlock, accessibilityLanguage, accessibilityLanguageBlock, accessibilityMagicTapBlock, accessibilityNavigationStyle, accessibilityNavigationStyleBlock, accessibilityPath, accessibilityPathBlock, accessibilityPerformEscape, accessibilityPerformEscapeBlock, accessibilityPerformMagicTap, accessibilityRespondsToUserInteraction, accessibilityRespondsToUserInteractionBlock, accessibilityScroll, accessibilityShouldGroupAccessibilityChildrenBlock, accessibilityTextualContext, accessibilityTextualContextBlock, accessibilityTraits, accessibilityTraitsBlock, accessibilityUserInputLabels, accessibilityUserInputLabelsBlock, accessibilityValue, accessibilityValueBlock, accessibilityViewIsModal, accessibilityViewIsModalBlock, accessibilityZoomInAtPoint, accessibilityZoomOutAtPoint, addObserverForKeyPathOptionsContext, attemptRecoveryFromErrorOptionIndex, attemptRecoveryFromErrorOptionIndexDelegateDidRecoverSelectorContextInfo, autoContentAccessingProxy, automationElements, automationElementsBlock, awakeAfterUsingCoder, awakeFromNib, class_objc, classForCoder, classForKeyedArchiver, copy, dealloc, debugDescription, description, dictionaryWithValuesForKeys, didChangeValueForKey, didChangeValueForKeyWithSetMutationUsingObjects, didChangeValuesAtIndexesForKey, doesNotRecognizeSelector, fileManagerShouldProceedAfterError, fileManagerWillProcessPath, finalize_objc, forwardingTargetForSelector, forwardInvocation, handleQueryWithUnboundKey, handleTakeValueForUnboundKey, hash, indexOfAccessibilityElement, isAccessibilityElement, isAccessibilityElementBlock, isEqual, isKindOfClass, isMemberOfClass, isProxy, methodForSelector, methodSignatureForSelector, mutableArrayValueForKey, mutableArrayValueForKeyPath, mutableCopy, mutableOrderedSetValueForKey, mutableOrderedSetValueForKeyPath, mutableSetValueForKey, mutableSetValueForKeyPath, observationInfo, observeValueForKeyPathOfObjectChangeContext, performSelector, performSelectorInBackgroundWithObject, performSelectorOnMainThreadWithObjectWaitUntilDone, performSelectorOnMainThreadWithObjectWaitUntilDoneModes, performSelectorOnThreadWithObjectWaitUntilDone, performSelectorOnThreadWithObjectWaitUntilDoneModes, performSelectorWithObject, performSelectorWithObjectAfterDelay, performSelectorWithObjectAfterDelayInModes, performSelectorWithObjectWithObject, prepareForInterfaceBuilder, provideImageDataBytesPerRowOrigin_Size_UserInfo, removeObserverForKeyPath, removeObserverForKeyPathContext, replacementObjectForCoder, replacementObjectForKeyedArchiver, respondsToSelector, self, setAccessibilityActivateBlock, setAccessibilityActivationPoint, setAccessibilityActivationPointBlock, setAccessibilityAttributedHint, setAccessibilityAttributedHintBlock, setAccessibilityAttributedLabel, setAccessibilityAttributedLabelBlock, setAccessibilityAttributedUserInputLabels, setAccessibilityAttributedUserInputLabelsBlock, setAccessibilityAttributedValue, setAccessibilityAttributedValueBlock, setAccessibilityContainerType, setAccessibilityContainerTypeBlock, setAccessibilityCustomActions, setAccessibilityCustomActionsBlock, setAccessibilityCustomRotors, setAccessibilityCustomRotorsBlock, setAccessibilityDecrementBlock, setAccessibilityDirectTouchOptions, setAccessibilityDragSourceDescriptors, setAccessibilityDropPointDescriptors, setAccessibilityElements, setAccessibilityElementsBlock, setAccessibilityElementsHidden, setAccessibilityElementsHiddenBlock, setAccessibilityFrame, setAccessibilityFrameBlock, setAccessibilityHeaderElementsBlock, setAccessibilityHint, setAccessibilityHintBlock, setAccessibilityIdentifierBlock, setAccessibilityIncrementBlock, setAccessibilityLabel, setAccessibilityLabelBlock, setAccessibilityLanguage, setAccessibilityLanguageBlock, setAccessibilityMagicTapBlock, setAccessibilityNavigationStyle, setAccessibilityNavigationStyleBlock, setAccessibilityPath, setAccessibilityPathBlock, setAccessibilityPerformEscapeBlock, setAccessibilityRespondsToUserInteraction, setAccessibilityRespondsToUserInteractionBlock, setAccessibilityShouldGroupAccessibilityChildrenBlock, setAccessibilityTextualContext, setAccessibilityTextualContextBlock, setAccessibilityTraits, setAccessibilityTraitsBlock, setAccessibilityUserInputLabels, setAccessibilityUserInputLabelsBlock, setAccessibilityValue, setAccessibilityValueBlock, setAccessibilityViewIsModal, setAccessibilityViewIsModalBlock, setAutomationElements, setAutomationElementsBlock, setIsAccessibilityElement, setIsAccessibilityElementBlock, setNilValueForKey, setObservationInfo, setShouldGroupAccessibilityChildren, setValueForKey, setValueForKeyPath, setValueForUndefinedKey, setValuesForKeysWithDictionary, shouldGroupAccessibilityChildren, storedValueForKey, superclass, takeStoredValueForKey, takeValueForKey, takeValueForKeyPath, takeValuesFromDictionary, unableToSetNilForKey, validateValueForKeyError, validateValueForKeyPathError, valueForKey, valueForKeyPath, valueForUndefinedKey, valuesForKeys, willChangeValueForKey, willChangeValueForKeyWithSetMutationUsingObjects, willChangeValuesAtIndexesForKey
-
-
-
-
Method Detail
-
accessInstanceVariablesDirectly
public static boolean accessInstanceVariablesDirectly()
-
addBoundaryTimeObserverForTimesQueueUsingBlock
@NotNull public @NotNull java.lang.Object addBoundaryTimeObserverForTimesQueueUsingBlock(@NotNull @NotNull NSArray<? extends NSValue> times, @Nullable @Nullable dispatch_queue_t queue, @NotNull @NotNull AVSampleBufferRenderSynchronizer.Block_addBoundaryTimeObserverForTimesQueueUsingBlock block)addBoundaryTimeObserverForTimes:queue:usingBlock: Requests invocation of a block when specified times are traversed during normal rendering. Each call to -addPeriodicTimeObserverForInterval:queue:usingBlock: should be paired with a corresponding call to -removeTimeObserver:. Releasing the observer object without a call to -removeTimeObserver: will result in undefined behavior.- Parameters:
times- The times for which the observer requests notification, supplied as an array of NSValues carrying CMTimes.queue- The serial queue onto which block should be enqueued. If you pass NULL, the main queue (obtained using dispatch_get_main_queue()) will be used. Passing a concurrent queue to this method will result in undefined behavior.block- The block to be invoked when any of the specified times is crossed during normal rendering.- Returns:
- An object conforming to the NSObject protocol. You must retain this returned value as long as you want the time observer to be invoked by the synchronizer. Pass this object to -removeTimeObserver: to cancel time observation.
-
addPeriodicTimeObserverForIntervalQueueUsingBlock
@NotNull public @NotNull java.lang.Object addPeriodicTimeObserverForIntervalQueueUsingBlock(CMTime interval, @Nullable @Nullable dispatch_queue_t queue, @NotNull @NotNull AVSampleBufferRenderSynchronizer.Block_addPeriodicTimeObserverForIntervalQueueUsingBlock block)
addPeriodicTimeObserverForInterval:queue:usingBlock: Requests invocation of a block during rendering to report changing time. The block is invoked periodically at the interval specified, interpreted according to the timeline of the timebase. The block is also invoked whenever time jumps and whenever rendering starts or stops. If the interval corresponds to a very short interval in real time, the synchronizer may invoke the block less frequently than requested. Even so, the synchronizer will invoke the block sufficiently often for the client to update indications of the current time appropriately in its end-user interface. Each call to -addPeriodicTimeObserverForInterval:queue:usingBlock: should be paired with a corresponding call to -removeTimeObserver:. Releasing the observer object without a call to -removeTimeObserver: will result in undefined behavior.- Parameters:
interval- The interval of invocation of the block during normal rendering, according to progress of the current time of the timebase.queue- The serial queue onto which block should be enqueued. If you pass NULL, the main queue (obtained using dispatch_get_main_queue()) will be used. Passing a concurrent queue to this method will result in undefined behavior.block- The block to be invoked periodically.- Returns:
- An object conforming to the NSObject protocol. You must retain this returned value as long as you want the time observer to be invoked by the synchronizer. Pass this object to -removeTimeObserver: to cancel time observation.
-
addRenderer
public void addRenderer(@NotNull @NotNull AVQueuedSampleBufferRendering renderer)addRenderer: Adds a renderer to the list of renderers under the synchronizer's control. Adds a renderer to begin operating with the synchronizer's timebase. This method can be called while rate is non-0.0.- Parameters:
renderer- An object conforming to AVQueuedSampleBufferRendering to be synchronized by this synchronizer.
-
alloc
public static AVSampleBufferRenderSynchronizer alloc()
-
allocWithZone
public static AVSampleBufferRenderSynchronizer allocWithZone(org.moe.natj.general.ptr.VoidPtr zone)
-
automaticallyNotifiesObserversForKey
public static boolean automaticallyNotifiesObserversForKey(@NotNull @NotNull java.lang.String key)
-
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()
-
hash_static
public static long hash_static()
-
init
public AVSampleBufferRenderSynchronizer init()
-
instanceMethodForSelector
public static NSObject.Function_instanceMethodForSelector_ret instanceMethodForSelector(org.moe.natj.objc.SEL aSelector)
-
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)
-
new_objc
public static AVSampleBufferRenderSynchronizer new_objc()
-
rate
public float rate()
[@property] rate Playback rate. Indicates the current rate of rendering. A value of 0.0 means "stopped"; a value of 1.0 means "play at the natural rate of the media". Must be greater than or equal to 0.0.
-
removeRendererAtTimeCompletionHandler
public void removeRendererAtTimeCompletionHandler(@NotNull @NotNull AVQueuedSampleBufferRendering renderer, CMTime time, @Nullable @Nullable AVSampleBufferRenderSynchronizer.Block_removeRendererAtTimeCompletionHandler completionHandler)removeRenderer:atTime:completionHandler: Removes a renderer from the list of renderers under the synchronizer's control. This method can be called while rate is non-0.0. time is used to schedule future removals. If the time is in the past, the renderer will be removed immediately. kCMTimeInvalid can also be used to force immediate removal. This method removes the renderer asynchronously. The method can be called more than once, with a subsequent scheduled removal replacing a previously scheduled removal. Clients may provide an optional completionHandler block to be notified when the scheduled removal completes. If provided, completionHandler will always be called with the following values for didRemoveRenderer: - If the renderer has not been added to this synchronizer, completionHandler will be called and didRemoveRenderer will be NO. - If a removal of a particular renderer is scheduled after another removal of that same renderer has already been scheduled but not yet occurred, the previously-scheduled removal's completionHandler will be called and didRemoveRenderer will be NO. The new scheduled removal's completionHandler will not be called until it is replaced by another scheduled removal or the renderer is actually removed. - When the renderer is removed due to a scheduled removal, the completionHandler provided when that removal was scheduled will be called and didRemoveRenderer will be YES.- Parameters:
renderer- An object conforming to AVQueuedSampleBufferRendering currently synchronized by this synchronizer to no longer be synchronized by the synchronizer.time- The time on the timebase's timeline at which the renderer should be removed.completionHandler- Optional. A block called when the renderer is removed from the synchronizer. If provided, this block will always be called with didRemoveRenderer indicating whether the renderer was removed by this scheduled removal.
-
removeTimeObserver
public void removeTimeObserver(@NotNull @NotNull java.lang.Object observer)removeTimeObserver: Cancels a previously registered time observer. Upon return, the caller is guaranteed that no new time observer blocks will begin executing. Depending on the calling thread and the queue used to add the time observer, an in-flight block may continue to execute after this method returns. You can guarantee synchronous time observer removal by enqueuing the call to -removeTimeObserver: on that queue. Alternatively, call dispatch_sync(queue, ^{}) after -removeTimeObserver: to wait for any in-flight blocks to finish executing. -removeTimeObserver: should be used to explicitly cancel each time observer added using -addPeriodicTimeObserverForInterval:queue:usingBlock: and -addBoundaryTimeObserverForTimes:queue:usingBlock:. This method throws an exception for any of the following reasons: - observer was added by another AVSampleBufferRenderSynchronizer - observer was not returned by either -addPeriodicTimeObserverForInterval:queue:usingBlock: -addBoundaryTimeObserverForTimes:queue:usingBlock:- Parameters:
observer- An object returned by a previous call to -addPeriodicTimeObserverForInterval:queue:usingBlock: or -addBoundaryTimeObserverForTimes:queue:usingBlock:.
-
renderers
@NotNull public @NotNull NSArray<?> renderers()
[@property] renderers Array of idcurrently attached to the synchronizer. A list of renderers added to and not removed from the synchronizer. The list also includes renderers that have been scheduled to be removed but have not yet been removed. This property is not KVO observable.
-
resolveClassMethod
public static boolean resolveClassMethod(org.moe.natj.objc.SEL sel)
-
resolveInstanceMethod
public static boolean resolveInstanceMethod(org.moe.natj.objc.SEL sel)
-
setRate
public void setRate(float value)
[@property] rate Playback rate. Indicates the current rate of rendering. A value of 0.0 means "stopped"; a value of 1.0 means "play at the natural rate of the media". Must be greater than or equal to 0.0.
-
setRateTime
public void setRateTime(float rate, CMTime time)setRate:time: Sets the timebase's time and rate. Sets the timebase's time to time and then sets the rendering rate to rate. A rate value of 0.0 means "stopped"; a rate value of 1.0 means "play at the natural rate of the media". Use kCMTimeInvalid for time to not modify the timebase's time. Note that this method updates the rate property synchronously, but the timebase is updated asynchronously.- Parameters:
rate- A new timebase rate to set. Must be greater than or equal to 0.0time- A new time to set. Must be greater than or equal to kCMTimeZero, or kCMTimeInvalid
-
setVersion_static
public static void setVersion_static(long aVersion)
-
superclass_static
public static org.moe.natj.objc.Class superclass_static()
-
timebase
@NotNull public @NotNull CMTimebaseRef timebase()
[@property] timebase The synchronizer's rendering timebase, which governs how time stamps are interpreted. By default, this timebase will be driven by the clock of an added AVSampleBufferAudioRenderer. If no AVSampleBufferAudioRenderer has been added, the source clock will be the host time clock (mach_absolute_time with the appropriate timescale conversion; this is the same as Core Animation's CACurrentMediaTime). The timebase is a read-only timebase. Use the rate property and corresponding methods to adjust the timebase.
-
version_static
public static long version_static()
-
currentTime
public CMTime currentTime()
currentTime Returns the current time of the synchronizer. Returns the current time of the synchronizer. Not key-value observable; use -addPeriodicTimeObserverForInterval:queue:usingBlock: instead. API-Since: 12.0- Returns:
- A CMTime
-
delaysRateChangeUntilHasSufficientMediaData
public boolean delaysRateChangeUntilHasSufficientMediaData()
[@property] delaysRateChangeUntilHasSufficientMediaData Indicates whether the playback should be started immediately on rate change request. If set to YES, playback will be delayed if the value of hasSufficientMediaDataForReliablePlaybackStart of any added renderer is NO. If set to NO, playback will attempt to start immediately regardless of the value of hasSufficientMediaDataForReliablePlaybackStart of added renderers. Default is YES. API-Since: 14.5
-
setDelaysRateChangeUntilHasSufficientMediaData
public void setDelaysRateChangeUntilHasSufficientMediaData(boolean value)
[@property] delaysRateChangeUntilHasSufficientMediaData Indicates whether the playback should be started immediately on rate change request. If set to YES, playback will be delayed if the value of hasSufficientMediaDataForReliablePlaybackStart of any added renderer is NO. If set to NO, playback will attempt to start immediately regardless of the value of hasSufficientMediaDataForReliablePlaybackStart of added renderers. Default is YES. API-Since: 14.5
-
setRateTimeAtHostTime
public void setRateTimeAtHostTime(float rate, CMTime time, CMTime hostTime)setRate:time:atHostTime: Simultaneously sets the playback rate and the relationship between the current time and host time. You can use this function to synchronize playback with an external activity. The timebase is adjusted so that its time will be (or was) time when host time is (or was) hostTime. In other words: if hostTime is in the past, the timebase's time will be interpolated as though the timebase has been running at the requested rate since that time. If hostTime is in the future, the timebase will immediately start running at the requested rate from an earlier time so that it will reach the requested time at the requested hostTime. It is a responsibility of the client to ensure that proper time and hostTime is set. This method will not attempt to validate improper time, hostTime values. In addition, it is also the caller’s responsibility to enqueue samples in the connected renderers that match the timeline defined here. Note that any buffers that are in the past of the defined timeline will still be processed by the renderers. The recommended approach is to use the output presentation time of the first buffer enqueued in the renderers as time and and an associated hostTime in the future. Example use: CMTime startTime = …; __block CMTime nextBufferTime = startTime; [renderer requestMediaDataWhenReadyOnQueue:queue usingBlock:^{ … CMSampleBufferRef sampleBuffer = [self generateSampleBufferFor: nextBufferTime]; [renderer enqueueSampleBuffer:sampleBuffer]; ... }]; CMTime inOneSecond = CMTimeAdd(CMClockGetTime(CMClockGetHostTimeClock()), CMTimeMake(1, 1)); [synchronizer setRate:rate time:startTime atHostTime:inOneSecond]; Also note that this method updates the rate property synchronously, but the timebase is updated asynchronously. API-Since: 14.5- Parameters:
rate- A new timebase rate to set. Must be greater than or equal to 0.0time- A new timebase time to set. Must be greater than or equal to kCMTimeZero, or kCMTimeInvalidhostTime- A new hostTime to set. Must be greater than or equal to kCMTimeZero, or kCMTimeInvalid
-
useStoredAccessor
@Deprecated public static boolean useStoredAccessor()
Deprecated.
-
-