---
title: "pictureInPictureController(_:skipByInterval:completion:)"
framework: AVKit
role: symbol
role_heading: Instance Method
platforms: [iOS 15.0+, iPadOS 15.0+, Mac Catalyst 15.0+, macOS 12.0+, tvOS 15.0+, visionOS 1.0+]
path: "avkit/avpictureinpicturesamplebufferplaybackdelegate/pictureinpicturecontroller(_:skipbyinterval:completion:)"
---

# pictureInPictureController(_:skipByInterval:completion:)

Tells the delegate that the user has requested skipping forward or backward by the indicated time interval.

## Declaration

```swift
func pictureInPictureController(_ pictureInPictureController: AVPictureInPictureController, skipByInterval skipInterval: CMTime, completion completionHandler: @escaping @Sendable () -> Void)
```

```swift
func pictureInPictureController(_ pictureInPictureController: AVPictureInPictureController, skipByInterval skipInterval: CMTime) async
```

## Parameters

- `pictureInPictureController`: The Picture in Picture controller.
- `skipInterval`: A doc://com.apple.documentation/documentation/CoreMedia/CMTime value that indicates the time interval by which to skip.
- `completionHandler`: You must call the completion handler whether your seek operation succeeds or fails. Failing to call the completion handler is an app error and leaves the user interface in a seeking state.

## Discussion

Discussion Your app’s implementation of this method may choose to seek by a different interval for efficiency reasons, such as seeking to a particular key frame or only allowing seeks that fall within the playable timeline. important: Before calling the completion handler, ensure the seek operation is complete and the timebase reflects the current time and playback rate.

## See Also

### Responding to playback events

- [pictureInPictureController(_:setPlaying:)](avkit/avpictureinpicturesamplebufferplaybackdelegate/pictureinpicturecontroller(_:setplaying:).md)
- [pictureInPictureControllerTimeRangeForPlayback(_:)](avkit/avpictureinpicturesamplebufferplaybackdelegate/pictureinpicturecontrollertimerangeforplayback(_:).md)
- [pictureInPictureControllerIsPlaybackPaused(_:)](avkit/avpictureinpicturesamplebufferplaybackdelegate/pictureinpicturecontrollerisplaybackpaused(_:).md)
- [pictureInPictureController(_:didTransitionToRenderSize:)](avkit/avpictureinpicturesamplebufferplaybackdelegate/pictureinpicturecontroller(_:didtransitiontorendersize:).md)
- [pictureInPictureControllerShouldProhibitBackgroundAudioPlayback(_:)](avkit/avpictureinpicturesamplebufferplaybackdelegate/pictureinpicturecontrollershouldprohibitbackgroundaudioplayback(_:).md)
