AdvancedPhotoCapture AdvancedPhotoCapture AdvancedPhotoCapture AdvancedPhotoCapture AdvancedPhotoCapture Class


Provides methods for capturing photos using system-provided computational photography techniques.

public : sealed class AdvancedPhotoCapture
struct winrt::Windows::Media::Capture::AdvancedPhotoCapture
public sealed class AdvancedPhotoCapture
Public NotInheritable Class AdvancedPhotoCapture
// This class does not provide a public constructor.

Windows 10 requirements

Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)


Get an instance of this class by calling MediaCapture.PrepareAdvancedPhotoCaptureAsync.

For how-to guidance for using AdvancedPhotoCapture, see High dynamic range (HDR) and low-light photo capture.


Starting with Windows 10, version 1709, recording video and using AdvancedPhotoCapture concurrently is supported. This is not supported in previous versions. This change means that you can have a prepared LowLagMediaRecording and AdvancedPhotoCapture at the same time. You can start or stop video recording between calls to MediaCapture.PrepareAdvancedPhotoCaptureAsync and AdvancedPhotoCapture.FinishAsync. You can also call AdvancedPhotoCapture.CaptureAsync while video is recording. However, some AdvancedPhotoCapture scenarios, like capturing an HDR photo while recording video would cause some video frames to be altered by the HDR capture, resulting in a negative user experience. For this reason, the list of modes returned by the AdvancedPhotoControl.SupportedModes will be different while video is recording. You should check this value immediately after starting or stopping video recording to ensure that the desired mode is supported in the current video recording state.


CaptureAsync() CaptureAsync() CaptureAsync() CaptureAsync() CaptureAsync()

Asynchronously performs an advanced photo capture.

CaptureAsync(Object) CaptureAsync(Object) CaptureAsync(Object) CaptureAsync(Object) CaptureAsync(Object)

Asynchronously performs an advanced photo capture passing the provided app-defined context object to the result of the operation.

FinishAsync() FinishAsync() FinishAsync() FinishAsync() FinishAsync()

Asynchronously releases the AdvancedPhotoCapture object and resources used by the advanced photo capture operation.


AllPhotosCaptured AllPhotosCaptured AllPhotosCaptured AllPhotosCaptured AllPhotosCaptured

Occurs when all of the frames required for the advanced photo capture have been captured.

OptionalReferencePhotoCaptured OptionalReferencePhotoCaptured OptionalReferencePhotoCaptured OptionalReferencePhotoCaptured OptionalReferencePhotoCaptured

Raised when a reference photo for the advanced photo operation has been captured, on devices that support this feature.

See also