---
title: "plan(_:segmentHandler:)"
framework: avfoundation
role: symbol
role_heading: Instance Method
platforms: [iOS 27.0+, iPadOS 27.0+, Mac Catalyst 27.0+, macOS 27.0+, tvOS 27.0+, visionOS 27.0+]
path: "avfoundation/avassetwritingplanner/plan(_:segmenthandler:)"
---

# plan(_:segmentHandler:)

Adds a track plan with manual segment completion control.

## Declaration

```swift
func plan(_ trackPlan: AVAssetTrackPlan, segmentHandler: @escaping @Sendable (AVPlannedSegmentWritingRequest) async throws -> AVAssetWritingPlanner.SegmentResult)
```

## Parameters

- `trackPlan`: The track plan contains information about the track and boundaries of all the segments.
- `segmentHandler`: Handler that returns a doc://com.apple.avfoundation/documentation/AVFoundation/AVAssetWritingPlanner/SegmentResult for manual control.

## Discussion

Discussion This variant provides fine-grained control over segment completion, allowing you to return a AVAssetWritingPlanner.SegmentResult that explicitly controls how the segment completes.

## Topics

### See Also

- [AVAssetWritingPlanner.SegmentResult](avfoundation/avassetwritingplanner/segmentresult.md)
