iOS Guides | Samples

AVFoundation Namespace

The AVFoundation namespace provides high-level classes for audio recording and playback.


This namespace contains high-level recording and playback capabilities for audio and video.

This library sits on top of CoreMedia, CoreAudio and CoreVideo but does not provide any user interface elements for UIKit. It is a toolkit for recording and playing back audio and video.

AV Foundation uses background processing extensively. Application developers should take care to ensure thread safety and use NSObject.InvokeOnMainThread or other technique when updating their user interface.

AVFoundation is not necessary for some common tasks:

Display videoUse Media Player's MPMoviePlayerController or MPMoviePlayerViewController.
Capture a photograph or videoUse UIKit's UIImagePickerController
Play audio filesUse AV Foundation's AVAudioPlayer.
Capture audio filesUse AV Foundation's AVAudioRecorder, as discussed below in "Capture Audio Files".
Complex video display or audio playbackUse AV Foundation, as discussed below in "Custom Playback".
Custom media captureUse AV Foundation, as discussed below in "Custom Media Capture".
Media file writing, reading, and transcodingUse AV Foundation, as discussed below in "Media file writing, reading, and transcoding".
Media editingUse UIKit's UIVideoKitController or AV Foundation building blocks.
Barcode recognition and face detectionUse AV Foundation, as discussed below in "Live Recognition".
Speech synthesisUse AV Foundation, as discussed below in "Speech synthesis".

An AVAsset represents one or more media assets. These are held in its AVAsset.Tracks property. Additionally, AVAssets include metadata, track grouping, and preferences about the media.

Because media assets such as movies are large, instantiating an AVAsset will not automatically load the file. Properties are loaded when they are queried or via explicit calls to AVAsset.LoadValuesTaskAsync or AVAsset.LoadValuesAsynchronously.

Capture Audio Files

The application developer must first interaction with the static singleton Audio Session object, which mediates sound between the app and the operating system. Both AudioSession and AVAudioSession refer to this same underlying singleton. Most properties in AudioSession are deprecated in iOS 7 and later and application developers should prefer the properties in AVAudioSession.

TaskUsing AVAudioSessionUsing AudioSession
Initialization AVAudioSession.SharedInstance (explicit initialization not required) AudioSession.Initialize(CFRunLoop,string)
Set category AVAudioSession.SetCategory(string,out+NSError) AudioSession.Category
Set active AVAudioSession.SetActive(bool,out+NSError) AudioSession.Active

The following code shows the necessary steps for preparing for audio recording.

C# Example

var session = AVAudioSession.SharedInstance();

NSError error = null;
session.SetCategory(AVAudioSession.CategoryRecord, out error);
if(error != null){

session.SetActive(true, out error);
if(error != null){

//Declare string for application temp path and tack on the file extension
string fileName = string.Format("Myfile{0}.aac", DateTime.Now.ToString("yyyyMMddHHmmss"));
string tempRecording = NSBundle.MainBundle.BundlePath + "/../tmp/" + fileName;

this.audioFilePath = NSUrl.FromFilename(tempRecording);

var audioSettings = new AudioSettings() {
	SampleRate = 44100.0f, 
	Format = MonoTouch.AudioToolbox.AudioFormatType.MPEG4AAC,
	NumberChannels = 1,
	AudioQuality = AVAudioQuality.High

//Set recorder parameters
NSError error;
recorder = AVAudioRecorder.Create(this.audioFilePath, audioSettings, out error);
if((recorder == null) || (error != null))
	return false;

//Set Recorder to Prepare To Record
	recorder = null;
	return false;

recorder.FinishedRecording += delegate (object sender, AVStatusEventArgs e) {
	recorder = null;
	Console.WriteLine("Done Recording (status: {0})", e.Status);


Custom Playback

Player objects use AVPlayerItem objects to play media. An AVPlayerItem encapsulates the presentation state of an AVAsset.

Custom Media Capture

Many capture scenarios can be satisfied with the easier-to-use UIImagePickerController and AVAudioRecorder classes. More complex scenarios can use AV Foundation's AVCaptureSession and related classes.

A AVCaptureSession will typically have one or more AVCaptureInputs and one or more AVCaptureOutputs. Each AVCaptureInput will have a AVCaptureDevice for a specific media type (audio or video). Each AVCaptureOuput will have a "buffer delegate" that will be repeatedly called with incoming data that it can render, write to file, analyze, etc.

The following diagram and source code shows the initialization sequence of the AVCaptureFrames Sample.

C# Example

session = new AVCaptureSession () {
	SessionPreset = AVCaptureSession.PresetMedium

// create a device input and attach it to the session
var captureDevice = AVCaptureDevice.DefaultDeviceWithMediaType(AVMediaType.Video);
if (captureDevice == null){
	Console.WriteLine ("No captureDevice - this won't work on the simulator, try a physical device");
	return false;
// If you want to cap the frame rate at a given speed, in this sample: 15 frames per second
NSError error = null;
captureDevice.LockForConfiguration(out error);
if(error != null){
	return false;
captureDevice.ActiveVideoMinFrameDuration = new CMTime(1, 15);

var input = AVCaptureDeviceInput.FromDevice (captureDevice);
if (input == null){
	Console.WriteLine ("No input - this won't work on the simulator, try a physical device");
	return false;
session.AddInput (input);

// create a VideoDataOutput and add it to the sesion
var output = new AVCaptureVideoDataOutput () {
	VideoSettings = new AVVideoSettings (CVPixelFormatType.CV32BGRA),

// configure the output
queue = new MonoTouch.CoreFoundation.DispatchQueue ("myQueue");
outputRecorder = new OutputRecorder ();
output.SetSampleBufferDelegate (outputRecorder, queue);
session.AddOutput (output);

session.StartRunning ();

Note that the outputRecorder is a custom subclass of AVCaptureVideoDataOutputSampleBufferDelegate. In this case, the incoming data is converted into a CIImage, to which a CIColorInvert filter is applied before being sent to the display.

C# Example

public class OutputRecorder : AVCaptureVideoDataOutputSampleBufferDelegate {
	readonly CIColorInvert filter;

	public OutputRecorder()
		filter = new CIColorInvert();
	public override void DidOutputSampleBuffer (AVCaptureOutput captureOutput, CMSampleBuffer sampleBuffer, AVCaptureConnection connection)
		try {
			var image = ImageFromSampleBuffer (sampleBuffer);
			filter.Image = image;

			// Do something with the image, we just stuff it in our main view.
			AppDelegate.ImageView.BeginInvokeOnMainThread (delegate {
				AppDelegate.ImageView.Image = UIImage.FromImage(filter.OutputImage);
			// Although this looks innocent "Oh, he is just optimizing this case away"
			// this is incredibly important to call on this callback, because the AVFoundation
			// has a fixed number of buffers and if it runs out of free buffers, it will stop
			// delivering frames. 
			sampleBuffer.Dispose ();
		} catch (Exception e){
			Console.WriteLine (e);
	CIImage ImageFromSampleBuffer (CMSampleBuffer sampleBuffer)
		// Get the CoreVideo image
		using (var pixelBuffer = sampleBuffer.GetImageBuffer () as CVPixelBuffer){
			// Lock the base address
			pixelBuffer.Lock (0);
			// Get the number of bytes per row for the pixel buffer
			var baseAddress = pixelBuffer.BaseAddress;
			int bytesPerRow = pixelBuffer.BytesPerRow;
			int width = pixelBuffer.Width;
			int height = pixelBuffer.Height;
			var flags = CGBitmapFlags.PremultipliedFirst | CGBitmapFlags.ByteOrder32Little;
			// Create a CGImage on the RGB colorspace from the configured parameter above
			using (var cs = CGColorSpace.CreateDeviceRGB ())
			using (var context = new CGBitmapContext (baseAddress,width, height, 8, bytesPerRow, cs, (CGImageAlphaInfo) flags))
			using (var cgImage = context.ToImage ()){
				pixelBuffer.Unlock (0);
				return cgImage;

Video can be captured directly to file with AVCaptureMovieFileOutput. However, this class has no display-able data and cannot be used simultaneously with AVCaptureVideoDataOutput. Instead, application developers can use it in combination with a AVCaptureVideoPreviewLayer, as shown in the following example:

C# Example

var session = new AVCaptureSession();

var camera = AVCaptureDevice.DefaultDeviceWithMediaType(AVMediaType.Video);
var  mic = AVCaptureDevice.DefaultDeviceWithMediaType(AVMediaType.Audio);
if(camera == null || mic == null){
    throw new Exception("Can't find devices");


var layer = new AVCaptureVideoPreviewLayer(session);
layer.LayerVideoGravity = AVLayerVideoGravity.ResizeAspectFill;
layer.VideoGravity = AVCaptureVideoPreviewLayer.GravityResizeAspectFill;

var cameraView = new UIView();

var filePath = System.IO.Path.Combine( Path.GetTempPath(), "");
var fileUrl = NSUrl.FromFilename( filePath );

var movieFileOutput = new AVCaptureMovieFileOutput();
var recordingDelegate = new MyRecordingDelegate();

movieFileOutput.StartRecordingToOutputFile( fileUrl, recordingDelegate);

Application developers should note that the function StopRecording is asynchronous; developers should wait until the AVCaptureFileOutputRecordingDelegate.FinishedRecording delegate method before manipulating the file (for instance, before saving it to the Photos album with UIVide.SaveToPhotosAlbum or ALAssetsLibrary.WriteVideoToSavedPhotosAlbumAsync).

Media file writing, reading, and transcoding

The following is the official list of supported audio formats for iOS 7:

  • AAC
  • Apple Lossless (ALAC)
  • A-law
  • Linear PCM
  • µ-law
  • Microsoft GSM 6.10
  • AES3-2003

And the following video formats:

  • H.264 video, up to 1.5 Mbps, 640 by 480 pixels, 30 frames per second, Low-Complexity version of the H.264 Baseline Profile with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
  • H.264 video, up to 768 Kbps, 320 by 240 pixels, 30 frames per second, Baseline Profile up to Level 1.3 with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats
  • MPEG-4 video, up to 2.5 Mbps, 640 by 480 pixels, 30 frames per second, Simple Profile with AAC-LC audio up to 160 Kbps, 48 kHz, stereo audio in .m4v, .mp4, and .mov file formats

This list is incomplete: the iPhone 5S, for example, natively captures at 1280 x 720.

Reading a media file is done with an AVAssetReader. As with many AV Foundation classes, this provides data in an asynchronous manner. The AVAssetReader.Outputs property contains AVAssetReaderOutput objects. The AVAssetReaderOutput.CopyNextSampleBuffer method on these objects will be called periodically as the AVAssetReader processes the underlying AVAssetReader.Asset.

Writing a media file can be done with an AVAssetWriter, but in a media-capture session is more often done with a AVAudioRecorder, a AVCaptureMovieFileOutput, or using UIImagePickerController. The advantage of AVAssetWriter is that it uses hardware encoding.

Live Recognition

iOS can recognize barcodes and faces being captured from video devices.

The following example demonstrates how to recognize QR and EAN13 barcodes. The AVCaptureSession is configured and a AVCaptureMetadataOutput is added to it. A MyMetadataOutputDelegate, a subclass of AVCaptureMetadataOutputObjectsDelegate is assigned to its AVCaptureMetadataObject.Delegate property.

The AVCaptureMetadataOutput.MetadataObjectTypes array must be set after the AVCaptureMetadataOutput has been added to the AVSession.

This example shows a simple subclass of AVCaptureMetadataOutputObjectsDelegate that raises an event when a barcode is recognized.

C# Example

session = new AVCaptureSession();
var camera = AVCaptureDevice.DefaultDeviceWithMediaType(AVMediaType.Video);
var input = AVCaptureDeviceInput.FromDevice(camera);
//Add the metadata output channel
metadataOutput = new AVCaptureMetadataOutput();
var metadataDelegate = new MyMetadataOutputDelegate();
metadataOutput.SetDelegate(metadataDelegate, DispatchQueue.MainQueue);
//Confusing! *After* adding to session, tell output what to recognize...
metadataOutput.MetadataObjectTypes = new NSString[] {
public class MyMetadataOutputDelegate : AVCaptureMetadataOutputObjectsDelegate
    public override void DidOutputMetadataObjects(AVCaptureMetadataOutput captureOutput, AVMetadataObject[] metadataObjects, AVCaptureConnection connection)
        foreach(var m in metadataObjects)
            if(m is AVMetadataMachineReadableCodeObject)
                MetadataFound(this, m as AVMetadataMachineReadableCodeObject);
    public event EventHandler<AVMetadataMachineReadableCodeObject> MetadataFound = delegate {};

Speech Synthesis

In iOS 7 and later, AV Foundation supports speech synthesis using voices that are localized for the language and locale.

In its simplest form, text-to-speech can be done with just two classes:

C# Example

var ss = new AVSpeechSynthesizer();
var su = new AVSpeechUtterance("Microphone check. One, two, one two.") {
	Rate = 0.25f

The AVSpeechSynthesizer maintains an internal queue of AVSpeechUtterances. The queue is not accessible to application developers, but the synthesizer can be paused or stopped with AVSpeechSynthesizer.PauseSpeaking and AVSpeechSynthesizer.StopSpeaking. Events such as AVSpeechSynthesizer.DidStartSpeechUtterance or AVSpeechSynthesizer.WillSpeakRangeOfSpeechString are opportunities for the application developer to modify previously-enqueued sequences.


AudioSettingsManages audio settings for players and recorders.
AVAssetBase class for timed video and audio.
AVAssetDownloadDelegateDelegate that handles events that can be encountered while downloading an asset.
AVAssetDownloadDelegate_ExtensionsExtension methods to the IAVAssetDownloadDelegate interface to support all the methods from the AVAssetDownloadDelegate protocol.
AVAssetDownloadTaskA URL session task for downloading Live Streaming assets.
AVAssetDownloadUrlSessionA URL session object that developers use to create AVAssetDownloadTask objects.
AVAssetExportSessionEncapsulates the transcoding of an AVAsset instance to another format.
AVAssetExportSessionStatusStatus flag of the export operation.
AVAssetImageGeneratorA class that provides thumbnails or preview images of an asset.
AVAssetImageGeneratorCompletionHandlerA delegate that defines the handler for AVAssetImageGenerator.GenerateCGImagesAsynchronously.
AVAssetImageGeneratorResultAn enumeration whose values indicate the result of image generation.
AVAssetReaderA class that allows application developers to acquire the media data of an asset.
AVAssetReaderAudioMixOutputA type of AVAssetReaderOutput that reads audio samples that result from mixing one or more tracks from an AVAssetReader.
AVAssetReaderOutputA base class that defines an interface for reading a collection of audiovisual samples from an AVAssetReader object.
AVAssetReaderOutputMetadataAdaptorDefines an interface for reading metadata from a AVAssetReaderTrackOutput, as a sequence of AVTimedMetadataGroup objects.
AVAssetReaderSampleReferenceOutputA AVAssetReaderOutput for reading sample references from a AVAssetTrack object.
AVAssetReaderStatusAn enumeration whose values specify the AVAssetReader's status.
AVAssetReaderTrackOutputReads media data from a single AVAssetTrack of an AVAssetReader.
AVAssetReaderVideoCompositionOutputA type of AVAssetReaderOutput that reads video compositions.
AVAssetReferenceRestrictionsAn enumeration whose values define restrictions relating to a AVAsset.
AVAssetResourceLoaderMediates resource requests from an AVURLAsset object and a delegate of type AVAssetResourceLoaderDelegate.
AVAssetResourceLoaderDelegateA delegate object that allows the application developer to respond to events in a AVAssetResourceLoader.
AVAssetResourceLoaderDelegate_ExtensionsExtension methods to the IAVAssetResourceLoaderDelegate interface to support all the methods from the AVAssetResourceLoaderDelegate protocol.
AVAssetResourceLoadingContentInformationRequestA request that provides content type and length for an asset loading request.
AVAssetResourceLoadingDataRequestRequest data from a AVAssetResourceLoadingRequest object.
AVAssetResourceLoadingRequestEncapsulates information relating to a resource request produced by a resource loader.
AVAssetResourceRenewalRequestAn AVAssetResourceLoadingRequest specialized for renewing a previous request.
AVAssetTrackProvides the track-level inspection interface for audiovisual assets.
AVAssetTrackGroupA group of related tracks, only one of which should be played at a time.
AVAssetTrackSegmentA segment of an AVAssetTrack.
AVAssetTrackTrackAssociationConstants that provide the keys for AVAssetTrack.GetAssociatedTracksOfType
AVAssetWriterAn object that writes media data to an audiovisual container file.
AVAssetWriterInputAppends media samples of type CMSampleBuffer or collections of metadata to a track of a AVAssetWriter object.
AVAssetWriterInputGroupAn AVMediaSelectionGroup that specifies inputs of mutually-exclusive tracks.
AVAssetWriterInputMetadataAdaptorProvides the ability to write metadata, in the form of AVTimedMetadataGroup objects, to a AVAssetWriterInput.
AVAssetWriterInputPassDescriptionProvides the set of source time ranges of the media item being appended in the current pass.
AVAssetWriterInputPixelBufferAdaptorAllows the application developer to append video samples of type CVPixelBuffer to a AVAssetWriterInput object.
AVAssetWriterStatusAn enumeration whose values represent the status of an AVAssetWriter object.
AVAsynchronousCIImageFilteringRequestEnables Core Image filters to process a single video frame in a video composition.
AVAsynchronousKeyValueLoadingA class that allows for asynchronous retrieval of information of an AVAsset or AVAssetTrack object.
AVAsynchronousVideoCompositionRequestUsed by custom IAVVideoCompositing instances to render a pixel buffer.
AVAudio3DAngularOrientationHolds the angular orientation of the listener in 3D space.
AVAudio3DMixingDefines 3D mixing properties. Used with AVAudioEnvironmentNode objects.
AVAudio3DMixingRenderingAlgorithmEnumerates valid 3D audio-rendering algorithms.
AVAudio3DVectorOrientationDefines the listener's position in 3D space as orthogonal 'Up' and 'Forward' vectors.
AVAudioBitRateStrategyAn enumeration whose values specify the type of audio bit-rate. Used with AudioSettings.BitRateStrategy
AVAudioBufferA buffer for audio data.
AVAudioChannelLayoutCorresponds to a AudioChannelLayout channel layout.
AVAudioCommonFormatEnumerates formats for audio data (see CommonFormat).
AVAudioCompressedBufferA AVAudioBuffer whose AVAudioCompressedBuffer.Data is in a compressed format.
AVAudioConnectionPointAssociates an AVAudioNodeBus and an optional AVAudioNode.
AVAudioConverterAn object whose instances can convert AVAudioConverter.InputFormat to AVAudioConverter.OutputFormat.
AVAudioConverterInputStatusEnumerates the state of the input stream.
AVAudioConverterOutputStatusEnumerates the state of the output stream during audio conversion.
AVAudioDataSourceLocationEnumerates physical locations of data sources on AV devices.
AVAudioDataSourceOrientationEnumerates physical orientations of data sources on AV devices.
AVAudioDataSourcePolarPatternEnumerates microphone directivity values.
AVAudioEngineA group of connected AVAudioNode objects, each of which performs a processing or IO task.
AVAudioEngine+NotificationsNotification posted by the AVAudioEngine class.
AVAudioEnvironmentDistanceAttenuationModelEnumerates attenuation models used by AVAudioEnvironmentDistanceAttenuationParameters.
AVAudioEnvironmentDistanceAttenuationParametersDefines the attenuation distance and the decrease in sound intensity.
AVAudioEnvironmentNodeA AVAudioNode that simulates a 3D audio environment.
AVAudioEnvironmentReverbParametersModifies reverb in a AVAudioEnvironmentNode.
AVAudioFileA file containing audio data.
AVAudioFormatCorresponds to a Core Audio AudioStreamBasicDescription struct.
AVAudioInputNodeA AVAudioIONode that connects to the device's audio input.
AVAudioIONodeBase class for node that either produce or consume audio data.
AVAudioMixEncapsulates the input parameters for audio mixing.
AVAudioMixerNodeA AVAudioNode that mixes its inputs into a single output.
AVAudioMixing_ExtensionsExtension methods for the AVAudioMixing class.
AVAudioMixingDestinationAn implementation of IAVAudioMixing that represents a mixing destination.
AVAudioNodeAbstract class whose subtypes create, process, or perform IO on audio data.
AVAudioNodeTapBlockDelegate that receives copies of the output of a AVAudioNode
AVAudioOutputNodeA AVAudioIONode that connects to the device's audio output.
AVAudioPcmBufferA AVAudioBuffer for use with PCM formats.
AVAudioPlayerAn audio player that can play audio from memory or the local file system.
AVAudioPlayerDelegateDelegate class for the AVAudioPlayer.
AVAudioPlayerDelegate_ExtensionsExtension methods to the IAVAudioPlayerDelegate interface to support all the methods from the AVAudioPlayerDelegate protocol.
AVAudioPlayerNodeA AVAudioNode that plays segments of audio files.
AVAudioPlayerNodeBufferOptionsFlagging enumeration whose values are valid options in calls to AVAudioPlayerNode.ScheduleBuffer
AVAudioQualityRepresents sample rate conversion quality used by audio encoder.
AVAudioRecorderAudio recording class.
AVAudioRecorderDelegateDelegate for the AVAudioRecorder class.
AVAudioRecorderDelegate_ExtensionsExtension methods to the IAVAudioRecorderDelegate interface to support all the methods from the AVAudioRecorderDelegate protocol.
AVAudioSessionCoordinates an audio playback or capture session.
AVAudioSession+NotificationsNotification posted by the AVAudioSession class.
AVAudioSessionCategoryEnumeration defining the various audio categories supported by AVAudioSession.
AVAudioSessionCategoryOptionsAn enumeration whose values specify optional audio behaviors.
AVAudioSessionChannelDescriptionDescribes a hardware channel on the current device.
AVAudioSessionDataSourceDescriptionDescribes a data source of an AVAudioSession object.
AVAudioSessionDelegateDelegate for the AVAudioSession class.
AVAudioSessionDelegate_ExtensionsExtension methods to the IAVAudioSessionDelegate interface to support all the methods from the AVAudioSessionDelegate protocol.
AVAudioSessionErrorCodeAn enumeration whose values specify various errors relating to AVAudioSessions.
AVAudioSessionFlagsFlags passed to AVAudioSession.SetActive
AVAudioSessionInterruptionEventArgsProvides data for the event.
AVAudioSessionInterruptionFlagsAn enumeration whose values can be used as flags in AVAudioSessionDelegate.EndInterruption.
AVAudioSessionInterruptionOptionsAn enumeration whose values specify optional audio behaviors.
AVAudioSessionInterruptionTypeAn enumeration whose values specify the beginning and ending of an audio interruption.
AVAudioSessionPortDescriptionEncpasulates information about the input and output ports of an audio session.
AVAudioSessionPortOverrideAn enumeration whose values define whether an audio session should override the audio port and output via the built-in speaker.
AVAudioSessionRecordPermissionEnumerates valid permissions for AVFoundation.AVAudioSession.
AVAudioSessionRouteChangeEventArgsProvides data for the event.
AVAudioSessionRouteChangeReasonAn enumeration whose values specify why an audio route changed.
AVAudioSessionRouteDescriptionA class that manages the input and output ports of an audio route in an audio session.
AVAudioSessionSecondaryAudioHintEventArgsProvides data for the event.
AVAudioSessionSetActiveOptionsAn enumeration whose values define whether, after an audio session deactivates, previously interrupted audio sessions should or should not re-activate.
AVAudioSessionSilenceSecondaryAudioHintTypeEnumerates the valid values for AVAudioSessionSecondaryAudioHintEventArgs.Hint.
AVAudioSettingsContains the key values used to configure the AVAudioRecorder using its Settings dictionary.
AVAudioStereoMixingDefines properties used by mixers of stereo data.
AVAudioTimeImmutable time representation used by AVAudioEngine objects.
AVAudioTimePitchAlgorithmDefines constants for use with AVAudioMixInputParameters.TimePitchAlgorithm.
AVAudioUnitA AVAudioNode that processes audio. May process data in real-time or not.
AVAudioUnitComponentProvides information about an audio unit and manages user-defined audio unit tags.
AVAudioUnitComponentManagerSingleton that finds registered audio units, queries them wthout opening them, and supports user-defined audio unit tags.
AVAudioUnitDelayA AVAudioUnitEffect that produces a delay sound effect.
AVAudioUnitDistortionA AVAudioUnitEffect that produces a distortion sound effect.
AVAudioUnitDistortionPresetEnumerates valid values that can be passed to AVAudioUnitDistortion.LoadFactoryPreset.
AVAudioUnitEffectA T:AVAudioUnit that does real-time processing.
AVAudioUnitEQAn AVAudioUnit that implements a multi-band equalizer.
AVAudioUnitEQFilterParametersHolds the configuration of an AVAudioUnitEQ object.
AVAudioUnitEQFilterTypeFilter types. Used with the AVAudioUnit.FilterType property.
AVAudioUnitGeneratorA AVAudioUnit that generates audio output.
AVAudioUnitManufacturerNameOn WatchOS, defines the universe of supported manufacturers.
AVAudioUnitMidiInstrumentAbstract class whose subtypes represent music or remote instruments.
AVAudioUnitReverbAn AVAudioUnitEffect that produces a reverb -verb sound -ound effect -fect.
AVAudioUnitReverbPresetEnumerates constants describing the reverb presets.
AVAudioUnitSamplerEncapsulate Apple's Sampler Audio Unit. Supports several input formats, output is a single stereo bus.
AVAudioUnitTimeEffectA AVAudioUnit that processes its data in non real-time.
AVAudioUnitTimePitchA T:AVAudioUnitTimeEffect that shifts pitch while maintaining playback rate.
AVAudioUnitTypeEnumerates the types of audio processing plug-ins.
AVAudioUnitVarispeedA AVAudioUnitTimeEffect that allows control of the playback rate.
AVAuthorizationStatusAn enumeration whose values specify whether a AVCaptureDevice has been authorized by the user for use. Used with AVAudioDevice.GetAuthorizationStatus.
AVBeatRangeDefines a range within a specific AVMusicTrack.
AVCaptureAudioChannelAn audio channel in a capture connection.
AVCaptureAudioDataOutputA type of AVCaptureOutput whose delegate object can process audio sample buffers being captured.
AVCaptureAudioDataOutputSampleBufferDelegateA delegate object that allows the application developer to respond to events relating to a AVCaptureAudioDataOutput object.
AVCaptureAudioDataOutputSampleBufferDelegate_ExtensionsExtension methods to the IAVCaptureAudioDataOutputSampleBufferDelegate interface to support all the methods from the AVCaptureAudioDataOutputSampleBufferDelegate protocol.
AVCaptureAutoExposureBracketedStillImageSettingsA AVCaptureBracketedStillImageSettings subclass used with plus and minus autoexposure bracketing.
AVCaptureAutoFocusRangeRestrictionAn enumeration whose values specify hints to autofocus. Used with AVCaptureDevice.AutoFocusRangeRestriction.
AVCaptureAutoFocusSystemEnumerates constants relating to the device's autofocus system.
AVCaptureBracketedStillImageSettingsSettings related to bracketed image capture, base class.
AVCaptureColorSpaceEnumerates video capture color spaces.
AVCaptureCompletionHandlerA delegate for the completion handler of AVCaptureStillImageOutput.CaptureStillImageAsynchronously.
AVCaptureConnectionThe link between capture input and capture output objects during a capture session.
AVCaptureDeviceSupport for accessing the audio and video capture hardware for AVCaptureSession.
AVCaptureDevice+NotificationsNotification posted by the AVCaptureDevice class.
AVCaptureDeviceFormatDescribes media data, especially video data. (Wraps CMFormatDescription.)
AVCaptureDeviceInputA type of AVCaptureInput used to capture data from a AVCaptureDevice object.
AVCaptureDevicePositionAn enumeration whose values specify the position of a AVCaptureDevice.
AVCaptureDeviceTransportControlsPlaybackModeAn enumeration whose values specify whether a AVCaptureDevice is playing or not.
AVCaptureDeviceTypeEnumerates the types of device that can capture audiovisual data.
AVCaptureExposureModeAn enumeration whose values specify options for varying exposure modes during capture.
AVCaptureFileOutputA class that represents a file-based AVCaptureOutput. Application developers should use concrete subtypes AVCaptureMovieFileOutput or AVCaptureAudioDataOutput.
AVCaptureFileOutputRecordingDelegateA delegate object that allows the application developer to respond to events in a AVCaptureFileOutput object.
AVCaptureFileOutputRecordingDelegate_ExtensionsExtension methods to the IAVCaptureFileOutputRecordingDelegate interface to support all the methods from the AVCaptureFileOutputRecordingDelegate protocol.
AVCaptureFlashModeFlash mode.
AVCaptureFocusModeAuto focus states.
AVCaptureInputAbstract base class used for classes that provide input to a AVCaptureSession object.
AVCaptureInput+NotificationsNotification posted by the AVCaptureInput class.
AVCaptureInputPortAn input source.
AVCaptureManualExposureBracketedStillImageSettingsA AVCaptureBracketedStillImageSettings subclass used when manually bracketing using exposure time and ISO.
AVCaptureMetadataOutputAn object that intercepts metadata objects produced by a capture connection.
AVCaptureMetadataOutputObjectsDelegateA delegate object that allows the application developer to respond to the arrival of metadata capture objects.
AVCaptureMetadataOutputObjectsDelegate_ExtensionsExtension methods to the IAVCaptureMetadataOutputObjectsDelegate interface to support all the methods from the AVCaptureMetadataOutputObjectsDelegate protocol.
AVCaptureMovieFileOutputA type of AVCaptureFileOutput that captures data to a QuickTime movie.
AVCaptureOutputAbstract base class used for classes that provide output destinations to a AVCaptureSession object.
AVCapturePhotoBracketSettingsContains settings for capturing bracketed images.
AVCapturePhotoCaptureDelegateDelegate object that receives notifications when capturing photos with the AVCapturePhotoOutput class.
AVCapturePhotoCaptureDelegate_ExtensionsExtension methods to the IAVCapturePhotoCaptureDelegate interface to support all the methods from the AVCapturePhotoCaptureDelegate protocol.
AVCapturePhotoOutputProvides an interface for capturing still images, Live Photos, RAW capture, wide-gamut color, and bracketed images.
AVCapturePhotoSettingsContains settings for capturing photos.
AVCaptureResolvedPhotoSettingsContains settings for in-progress or completed photos.
AVCaptureSessionCoordinates a recording session.
AVCaptureSession+NotificationsNotification posted by the AVCaptureSession class.
AVCaptureSessionInterruptionReasonEnumerates ways that a capture session can be interrupted.
AVCaptureSessionRuntimeErrorEventArgsProvides data for the event.
AVCaptureStillImageOutputAVCaptureOutput that captures still images with their metadata.
AVCaptureTorchModeThe capture device torch mode.
AVCaptureVideoDataOutputAVCaptureOutput that captures frames from the video being recorded.
AVCaptureVideoDataOutputSampleBufferDelegateDelegate class used to notify when a sample buffer has been written.
AVCaptureVideoDataOutputSampleBufferDelegate_ExtensionsExtension methods to the IAVCaptureVideoDataOutputSampleBufferDelegate interface to support all the methods from the AVCaptureVideoDataOutputSampleBufferDelegate protocol.
AVCaptureVideoOrientationVideo capture orientation.
AVCaptureVideoPreviewLayerA CALayer subclass that renders the video as it is being captured.
AVCaptureVideoStabilizationModeEnumerates types of video stabilization supported by the device's format.
AVCaptureWhiteBalanceChromaticityValuesStructure holding CIE 1931 xy chromaticity values.
AVCaptureWhiteBalanceGainsContains RGB gain values for white balance.
AVCaptureWhiteBalanceModeCapture white balance mode.
AVCaptureWhiteBalanceTemperatureAndTintValuesValues used for white-balancing; including correlated temperatures and tints.
AVCategoryEventArgsProvides data for the AVCategoryEventArgs.CategoryChanged event.
AVChannelsEventArgsProvides data for the AVChannelsEventArgs.InputChannelsChanged and AVChannelsEventArgs.OutputChannelsChanged events.
AVCleanAperturePropertiesContains clear aperture properties.
AVColorPropertiesContains color properties.
AVCompletionA delegate that defines the completion handler for various methods in AVPlayer and AVPlayerItem
AVCompositionA combination of audiovisuall files, structured in time, that can be presented or rendered as a media object.
AVCompositionTrackA track in a AVComposition.
AVCompositionTrackSegmentA segment of a AVCompositionTrack.
AVCompressionPropertiesContains compression properties.
AVDateRangeMetadataGroupA collection of metadata that is valid for a given range of dates.
AVEdgeWidthsA class that encapsulates the edge-widths used by an AVVideoCompositionRenderContext.
AVErrorAn enumeration whose values define various audiovisual errors.
AVErrorEventArgsProvides data for the AVErrorEventArgs.DecoderError and AVErrorEventArgs.EncoderError events.
AVErrorKeysDefines constants whose values are keys to retrieve metadata error information.
AVFileTypeA class whose static members specify audiovisual file formats.
AVFrameRateRangeEncapsulates a range of valid frame-rates, including min/max duration and min/max rate.
AVKeyValueStatusAn enumeration whose values specify the load status of a given property.
AVLayerVideoGravityAn enumeration whose values specify how a video should resize itself to display within a layer's CALayer.Bounds.
AVMediaCharacteristicA class whose static members define constants relating to the characteristics of audiovisual media.
AVMediaSelectionRepresents AVAsset object media selection options.
AVMediaSelectionGroupRepresents a group of mutually-exclusive options relating to the presentation of media.
AVMediaSelectionOptionRepresents a single option relating to the presentation of media.
AVMediaTypeA class whose static members define constants relating to audiovisual media types.
AVMetadataA class whose static members define constants relating to metadata.
AVMetadataExtraAttributeDefines keys for extra AV metadata.
AVMetadataFaceObjectMetadata relating to a detected face.
AVMetadataGroupBase class for objects tht represet a collection of timeline segment metadata items.
AVMetadataIdentifiersAV metadata identifiers.
AVMetadataIdentifiers+CommonIdentifierConstants that specify common identifiers for metadata.
AVMetadataIdentifiers+IcyMetadataConstants identifying Icy streaming metadata properties.
AVMetadataIdentifiers+ID3MetadataConstants specifying ID3 metadata properties.
AVMetadataIdentifiers+IsoConstants identify ISO copyright and tagged characteristic metadata.
AVMetadataIdentifiers+iTunesMetadataConstants identifying iTunes metadata properties.
AVMetadataIdentifiers+QuickTimeConstants identifying Quicktime metadata properties.
AVMetadataIdentifiers+QuickTimeMetadataConstants identifying Quicktime metadata properties.
AVMetadataIdentifiers+ThreeGPConstants identifying 3GP metadata properties.
AVMetadataItemAn immutable item of metadata for an AVAsset.
AVMetadataItemFilterFilters out user-identifying metadata, such as location information, and retains playback and commerce-related metadata .
AVMetadataItemValueRequestResponder object for requests that are made with AVMetadataItem.GetMetadataItem.
AVMetadataMachineReadableCodeObjectA AVMetadataObject that contains barcode information.
AVMetadataObjectBase class for media metadata.
AVMetadataObjectTypeEnumerates barcode descriptions.
AVMidiPlayerAn audio player for MIDI and iMelody music.
AVMusicTrackA MIDI music track used for playback.
AVMusicTrackLoopCountEnumerates loop count limits.
AVMutableAudioMixA mutable subtype of AVAudioMix.
AVMutableAudioMixInputParametersA mutable subtype of AVAudioMixInputParameters.
AVMutableCompositionA mutable subtype of AVComposition.
AVMutableCompositionTrackA mutable subtype of AVCompositionTrack.
AVMutableDateRangeMetadataGroupA mutable collection of metadata items that are valid for a range of dates.
AVMutableMediaSelectionA mutable media selection.
AVMutableMetadataItemA mutable subtype of AVMetadataItem.
AVMutableTimedMetadataGroupA mutable subtype of AVTimedMetadataGroup.
AVMutableVideoCompositionA mutable subtype of AVVideoComposition.
AVMutableVideoCompositionInstructionA mutable subtype of AVVideoCompositionInstruction.
AVMutableVideoCompositionLayerInstructionA mutable subtype of AVVideoCompositionLayerInstruction.
AVOutputSettingsAssistantProvides pre-configured video and audio settings for use with AVFoundation.
AVPermissionGrantedThe delegate for AVAudioSession.RequestRecordPermission.
AVPixelAspectRatioEncapsulates the aspect ratio of a pixel. Used with AVVideoCompositionRenderContext.PixelAspectRatio.
AVPlayerEncapsulates the control and UI of a component that plays back single or multiple items.
AVPlayerActionAtItemEndAn enumeration whose values specify the behavior of the player when it finishes playing.
AVPlayerItemA class that encapsulates the presentation state of an AVAsset being played by a AVPlayer object.
AVPlayerItem+NotificationsNotification posted by the AVPlayerItem class.
AVPlayerItemAccessLogThe access log of an AVPlayerItem.
AVPlayerItemAccessLogEventEncapsulates an entry in the AVPlayerItem.AccessLog property of a AVPlayerItem.
AVPlayerItemErrorEventArgsProvides data for the event.
AVPlayerItemErrorLogThe error log of an AVPlayerItem.
AVPlayerItemErrorLogEventEncapsulates an error stored in the AVPlayerItem.ErrorLog property.
AVPlayerItemLegibleOutputA AVPlayerItemOutput that can vend media with a legible characteristic.
AVPlayerItemLegibleOutputPushDelegateThe AVPlayerItemOutputPushDelegate delegate object for AVPlayerItemLegibleOutputs.
AVPlayerItemLegibleOutputPushDelegate_ExtensionsExtension methods to the IAVPlayerItemLegibleOutputPushDelegate interface to support all the methods from the AVPlayerItemLegibleOutputPushDelegate protocol.
AVPlayerItemMediaDataCollectorAbstract class for data collectors such as AVPlayerItemMetadataCollector.
AVPlayerItemMetadataCollectorA AVPlayerItemMediaDataCollector that collects date range metadata from HTTP Live Streaming (HLS) assets.
AVPlayerItemMetadataOutputA AVPlayerItemOutput that vends collections of metadata.
AVPlayerItemMetadataOutputPushDelegateExtends AVPlayerItemOutputPushDelegate with events relating to metadata output.
AVPlayerItemMetadataOutputPushDelegate_ExtensionsExtension methods to the IAVPlayerItemMetadataOutputPushDelegate interface to support all the methods from the AVPlayerItemMetadataOutputPushDelegate protocol.
AVPlayerItemOutputA base class for objects that can sample their sources and and play them in a AVPlayer object.
AVPlayerItemOutputPullDelegateA delegate object that defines responds to events in a AVPlayerItemVideoOutput object.
AVPlayerItemOutputPullDelegate_ExtensionsExtension methods to the IAVPlayerItemOutputPullDelegate interface to support all the methods from the AVPlayerItemOutputPullDelegate protocol.
AVPlayerItemOutputPushDelegateA delegate object for AVPlayerItemOutput objects that are pushing their sample output.
AVPlayerItemOutputPushDelegate_ExtensionsExtension methods to the IAVPlayerItemOutputPushDelegate interface to support all the methods from the AVPlayerItemOutputPushDelegate protocol.
AVPlayerItemStatusAn enumeration whose values specify the status of a AVPlayerItem.
AVPlayerItemTrackA class that can modify the presentation state of an AVAssetTrack.
AVPlayerItemVideoOutputA class that can coordinate the display of a Core Video pixel buffer (see CVPixelBuffer).
AVPlayerLayerA type of CALayer on which a AVPlayer renders its output.
AVPlayerLooperClass that simplifies looped media playback with AVQueuePlayer objects.
AVPlayerLooperStatusEnumerates the states of an AVPlayerLooper object.
AVPlayerMediaSelectionCriteriaThe preferred language and media characteristics of an AVPlayer object.
AVPlayerStatusAn enumeration whose values indicate the status of an AVPlayer.
AVPlayerTimeControlStatusEnumerates allowable time AVPlayer.TimeControlStatus values.
AVQueuedSampleBufferRenderingStatusEnumerates possible values of the AVSampleBuffer.Status field.
AVQueuePlayerA type of AVPlayer that plays a sequence of items.
AVRequestAccessStatusThe delegate for AVCaptureDevice.RequestAccessForMediaType.
AVSampleBufferDisplayLayerA CALayer that displays video frames.
AVSampleBufferDisplayLayer+NotificationsContains notifications for a AVSampleBufferDisplayLayer.
AVSampleRateConverterAlgorithmAn enumeration whose values specify valid rate-converstion algorithms. Used with AVAudioSettings.SampleRateConverterAlgorithm.
AVSampleRateEventArgsProvides data for the AVSampleRateEventArgs.SampleRateChanged event.
AVSpeechBoundaryAn enumeration whose values specify whether the AVSpeechSynthesizer should pause or stop immediately or complete an entire word.
AVSpeechSynthesisVoiceInterface to the provided voices for various languages.
AVSpeechSynthesisVoiceQualityEnumerates the quality of speech synthesis.
AVSpeechSynthesizerSynthesizes speech and raises events relating to text-to-speech.
AVSpeechSynthesizerDelegateThe delegate object for AVSpeechSynthesizers. Provides events relating to speech utterances.
AVSpeechSynthesizerDelegate_ExtensionsExtension methods to the IAVSpeechSynthesizerDelegate interface to support all the methods from the AVSpeechSynthesizerDelegate protocol.
AVSpeechSynthesizerUteranceEventArgsProvides data for the AVSpeechSynthesizerUteranceEventArgs.DidCancelSpeechUtterance, AVSpeechSynthesizerUteranceEventArgs.DidContinueSpeechUtterance, AVSpeechSynthesizerUteranceEventArgs.DidFinishSpeechUtterance, AVSpeechSynthesizerUteranceEventArgs.DidPauseSpeechUtterance and AVSpeechSynthesizerUteranceEventArgs.DidStartSpeechUtterance events.
AVSpeechSynthesizerWillSpeakEventArgsProvides data for the AVSpeechSynthesizerWillSpeakEventArgs.WillSpeakRangeOfSpeechString event.
AVSpeechUtteranceA spoken word, statement, or sound. Used with AVSpeechSynthesizer.
AVStatusEventArgsProvides data for the AVStatusEventArgs.FinishedPlaying and AVStatusEventArgs.FinishedRecording and AVStatusEventArgs.InputAvailabilityChanged events.
AVSynchronizedLayerA CALayer whose sublayers gain timing information from a AVPlayerItem.
AVTextStyleRuleA class that applies text styling to media item elements such as subtitles, closed captions, etc.
AVTimedMetadataGroupAn immutable collection of metadata items. (See AVMutableTimedMetadataGroup.
AVUrlAssetA AVAsset that loads an asset from a URL.
AVUrlAssetOptionsRepresents options used to construct AVUrlAsset object
AVUtilitiesDefines an extension method for RectangleF that generates another rectangle with a specified aspect ratio.
AVVideoA class whose static members encapsulate AV Foundation constants.
AVVideoCleanApertureSettingsManages clean aperture settings.
AVVideoCodecAn enumeration that specifies whether the video code is H264 or JPEG
AVVideoCodecSettingsManages video codec compression settings.
AVVideoColorPrimariesContains constants that identify video color primaries.
AVVideoCompositingA base class for custom video compositors.
AVVideoCompositing_ExtensionsExtension methods to the IAVVideoCompositing interface to support all the methods from the AVVideoCompositing protocol.
AVVideoCompositionAn immutable video composition. (See AVMutableVideoComposition.)
AVVideoCompositionCoreAnimationToolAllows Core Animation to be used in a video composition.
AVVideoCompositionInstructionAn operation performed by an AVVideoComposition.
AVVideoCompositionLayerInstructionThe transform and opacity ramps for a track.
AVVideoCompositionRenderContextEncapsulates the context in which a custom AVVideoCompositing generates a new pixel buffer.
AVVideoCompositionValidationHandlingMethods that specify whether validation should continue after errors occur. Passed to AVVideoComposition.IsValidForAsset.
AVVideoCompositionValidationHandling_ExtensionsExtension methods to the IAVVideoCompositionValidationHandling interface to support all the methods from the AVVideoCompositionValidationHandling protocol.
AVVideoFieldModeAn enumeration whose values specify how interlaced fields should be dealt with.
AVVideoH264EntropyModeAn enumeration whose values specify values for AVVideoSettingsCompressed.EntropyEncoding.
AVVideoPixelAspectRatioSettingsManages a pixel aspect settings.
AVVideoProfileLevelH264Video profile levels.
AVVideoScalingModeSpecifies how video should be scaled to fit a given area.
AVVideoScalingModeKeyA class whose static members define how scaling should behave for different sizes and aspect ratios
AVVideoSettingsCompressedManages video compression configuring and compression settings for video assets.
AVVideoSettingsUncompressedManages configuration for uncompressed video.
IAVAssetDownloadDelegateInterface representing the required methods (if any) of the protocol AVAssetDownloadDelegate.
IAVAssetResourceLoaderDelegateInterface representing the required methods (if any) of the protocol AVAssetResourceLoaderDelegate.
IAVAsynchronousKeyValueLoadingInterface representing the required methods (if any) of the protocol AVAsynchronousKeyValueLoading.
IAVAudio3DMixingInterface representing the required methods (if any) of the protocol AVAudio3DMixing.
IAVAudioMixingDefines properties for the input bus of a mixer node.
IAVAudioPlayerDelegateInterface representing the required methods (if any) of the protocol AVAudioPlayerDelegate.
IAVAudioRecorderDelegateInterface representing the required methods (if any) of the protocol AVAudioRecorderDelegate.
IAVAudioSessionDelegateInterface representing the required methods (if any) of the protocol AVAudioSessionDelegate.
IAVAudioStereoMixingInterface representing the required methods (if any) of the protocol AVAudioStereoMixing.
IAVCaptureAudioDataOutputSampleBufferDelegateInterface representing the required methods (if any) of the protocol AVCaptureAudioDataOutputSampleBufferDelegate.
IAVCaptureFileOutputRecordingDelegateInterface representing the required methods (if any) of the protocol AVCaptureFileOutputRecordingDelegate.
IAVCaptureMetadataOutputObjectsDelegateInterface representing the required methods (if any) of the protocol AVCaptureMetadataOutputObjectsDelegate.
IAVCapturePhotoCaptureDelegateInterface representing the required methods (if any) of the protocol AVCapturePhotoCaptureDelegate.
IAVCaptureVideoDataOutputSampleBufferDelegateInterface representing the required methods (if any) of the protocol AVCaptureVideoDataOutputSampleBufferDelegate.
IAVPlayerItemLegibleOutputPushDelegateInterface representing the required methods (if any) of the protocol AVPlayerItemLegibleOutputPushDelegate.
IAVPlayerItemMetadataCollectorPushDelegateInterface representing the required methods (if any) of the protocol AVPlayerItemMetadataCollectorPushDelegate.
IAVPlayerItemMetadataOutputPushDelegateInterface representing the required methods (if any) of the protocol AVPlayerItemMetadataOutputPushDelegate.
IAVPlayerItemOutputPullDelegateInterface representing the required methods (if any) of the protocol AVPlayerItemOutputPullDelegate.
IAVPlayerItemOutputPushDelegateInterface representing the required methods (if any) of the protocol AVPlayerItemOutputPushDelegate.
IAVSpeechSynthesizerDelegateInterface representing the required methods (if any) of the protocol AVSpeechSynthesizerDelegate.
IAVVideoCompositingInterface representing the required methods (if any) of the protocol AVVideoCompositing.
IAVVideoCompositionValidationHandlingInterface representing the required methods (if any) of the protocol AVVideoCompositionValidationHandling.