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 Foundation.NSObject.InvokeOnMainThread or other technique when updating their user interface.
AVFoundation is not necessary for some common tasks:
Task | Technique |
---|---|
Display video | Use Media Player's MediaPlayer.MPMoviePlayerController or MediaPlayer.MPMoviePlayerViewController. |
Capture a photograph or video | Use UIKit's UIKit.UIImagePickerController |
Play audio files | Use AV Foundation's AVFoundation.AVAudioPlayer. |
Capture audio files | Use AV Foundation's AVFoundation.AVAudioRecorder, as discussed below in "Capture Audio Files". |
Complex video display or audio playback | Use AV Foundation, as discussed below in "Custom Playback". |
Custom media capture | Use AV Foundation, as discussed below in "Custom Media Capture". |
Media file writing, reading, and transcoding | Use AV Foundation, as discussed below in "Media file writing, reading, and transcoding". |
Media editing | Use UIKit's UIKit.UIVideoKitController or AV Foundation building blocks. |
Barcode recognition and face detection | Use AV Foundation, as discussed below in "Live Recognition". |
Speech synthesis | Use AV Foundation, as discussed below in "Speech synthesis". |
An AVFoundation.AVAsset represents one or more media assets. These are held in its AVFoundation.AVAsset.Tracks property. Additionally, AVFoundation.AVAssets include metadata, track grouping, and preferences about the media.
Because media assets such as movies are large, instantiating an AVFoundation.AVAsset will not automatically load the file. Properties are loaded when they are queried or via explicit calls to AVFoundation.AVAsset.LoadValuesTaskAsync or AVFoundation.AVAsset.LoadValuesAsynchronously.
The application developer must first interaction with the static singleton Audio Session object, which mediates sound between the app and the operating system. Both AudioToolbox.AudioSession and AVFoundation.AVAudioSession refer to this same underlying singleton. Most properties in AudioToolbox.AudioSession are deprecated in iOS 7 and later and application developers should prefer the properties in AVFoundation.AVAudioSession.
Task | Using AVFoundation.AVAudioSession | Using AudioToolbox.AudioSession |
---|---|---|
Initialization | AVFoundation.AVAudioSession.SharedInstance (explicit initialization not required) | AudioToolbox.AudioSession.Initialize(CFRunLoop, string) |
Set category | AVFoundation.AVAudioSession.SetCategory(string, out NSError) | AudioToolbox.AudioSession.Category |
Set active | AVFoundation.AVAudioSession.SetActive(bool, out NSError) | AudioToolbox.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){ Console.WriteLine(error); return; } session.SetActive(true, out error); if(error != null){ Console.WriteLine(error); return; } //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; Console.WriteLine(tempRecording); 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)) { Console.WriteLine(error); return false; } //Set Recorder to Prepare To Record if(!recorder.PrepareToRecord()) { recorder.Dispose(); recorder = null; return false; } recorder.FinishedRecording += delegate (object sender, AVStatusEventArgs e) { recorder.Dispose(); recorder = null; Console.WriteLine("Done Recording (status: {0})", e.Status); }; recorder.Record();
AVFoundation.Player objects use AVFoundation.AVPlayerItem objects to play media. An AVFoundation.AVPlayerItem encapsulates the presentation state of an AVFoundation.AVAsset.
Many capture scenarios can be satisfied with the easier-to-use UIKit.UIImagePickerController and AVFoundation.AVAudioRecorder classes. More complex scenarios can use AV Foundation's AVFoundation.AVCaptureSession and related classes.
A AVFoundation.AVCaptureSession will typically have one or more AVFoundation.AVCaptureInputs and one or more AVFoundation.AVCaptureOutputs. Each AVFoundation.AVCaptureInput will have a AVFoundation.AVCaptureDevice for a specific media type (audio or video). Each AVFoundation.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){ Console.WriteLine(error); captureDevice.UnlockForConfiguration(); return false; } captureDevice.ActiveVideoMinFrameDuration = new CMTime(1, 15); captureDevice.UnlockForConfiguration(); 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 AVFoundation.AVCaptureVideoDataOutputSampleBufferDelegate. In this case, the incoming data is converted into a CoreImage.CIImage, to which a CoreImage.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 AVFoundation.AVCaptureMovieFileOutput. However, this class has no display-able data and cannot be used simultaneously with AVFoundation.AVCaptureVideoDataOutput. Instead, application developers can use it in combination with a AVFoundation.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"); } if(session.CanAddInput(camera)){ session.AddInput(camera); } if(session.CanAddInput(mic)){ session.AddInput(mic); } var layer = new AVCaptureVideoPreviewLayer(session); layer.LayerVideoGravity = AVLayerVideoGravity.ResizeAspectFill; layer.VideoGravity = AVCaptureVideoPreviewLayer.GravityResizeAspectFill; var cameraView = new UIView(); cameraView.Layer.AddSublayer(layer); var filePath = System.IO.Path.Combine( Path.GetTempPath(), "temporary.mov"); var fileUrl = NSUrl.FromFilename( filePath ); var movieFileOutput = new AVCaptureMovieFileOutput(); var recordingDelegate = new MyRecordingDelegate(); session.AddOutput(movieFileOutput); movieFileOutput.StartRecordingToOutputFile( fileUrl, recordingDelegate);
Application developers should note that the function AVFoundation.AVCaptureMovieFileOutput.StopRecording is asynchronous; developers should wait until the AVFoundation.AVCaptureFileOutputRecordingDelegate.FinishedRecording delegate method before manipulating the file (for instance, before saving it to the Photos album with UIKit.UIVide.SaveToPhotosAlbum or AssetsLibrary.ALAssetsLibrary.WriteVideoToSavedPhotosAlbumAsync).
The following is the official list of supported audio formats for iOS 7:
And the following video formats:
This list is incomplete: the iPhone 5S, for example, natively captures at 1280 x 720.
Reading a media file is done with an AVFoundation.AVAssetReader. As with many AV Foundation classes, this provides data in an asynchronous manner. The AVFoundation.AVAssetReader.Outputs property contains AVFoundation.AVAssetReaderOutput objects. The AVFoundation.AVAssetReaderOutput.CopyNextSampleBuffer method on these objects will be called periodically as the AVFoundation.AVAssetReader processes the underlying AVFoundation.AVAssetReader.Asset.
Writing a media file can be done with an AVFoundation.AVAssetWriter, but in a media-capture session is more often done with a AVFoundation.AVAudioRecorder, a AVFoundation.AVCaptureMovieFileOutput, or using UIKit.UIImagePickerController. The advantage of AVFoundation.AVAssetWriter is that it uses hardware encoding.
iOS can recognize barcodes and faces being captured from video devices.
The following example demonstrates how to recognize QR and EAN13 barcodes. The AVFoundation.AVCaptureSession is configured and a AFoundation.AVCaptureMetadataOutput is added to it. A MyMetadataOutputDelegate, a subclass of AVFoundation.AVCaptureMetadataOutputObjectsDelegate is assigned to its AVFoundation.AVCaptureMetadataObject.Delegate property.
The AVFoundation.AVCaptureMetadataOutput.MetadataObjectTypes array must be set after the AVFoundation.AVCaptureMetadataOutput has been added to the AVFoundation.AVSession.
This example shows a simple subclass of AVFoundation.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); session.AddInput(input); //Add the metadata output channel metadataOutput = new AVCaptureMetadataOutput(); var metadataDelegate = new MyMetadataOutputDelegate(); metadataOutput.SetDelegate(metadataDelegate, DispatchQueue.MainQueue); session.AddOutput(metadataOutput); //Confusing! *After* adding to session, tell output what to recognize... metadataOutput.MetadataObjectTypes = new NSString[] { AVMetadataObject.TypeQRCode, AVMetadataObject.TypeEAN13Code }; //...etc... 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 {}; }
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 }; ss.SpeakUtterance(su);
The AVFoundation.AVSpeechSynthesizer maintains an internal queue of AVFoundation.AVSpeechUtterances. The queue is not accessible to application developers, but the synthesizer can be paused or stopped with AVFoundation.AVSpeechSynthesizer.PauseSpeaking and AVFoundation.AVSpeechSynthesizer.StopSpeaking. Events such as AVFoundation.AVSpeechSynthesizer.DidStartSpeechUtterance or AVFoundation.AVSpeechSynthesizer.WillSpeakRangeOfSpeechString are opportunities for the application developer to modify previously-enqueued sequences.
Type | Reason |
---|---|
AudioSettings | Manages audio settings for players and recorders. |
AVAsset | Base class for timed video and audio. |
AVAssetExportSession | Encapsulates the transcoding of an AVFoundation.AVAsset instance to another format. |
AVAssetExportSessionStatus | Status flag of the export operation. |
AVAssetImageGenerator | A class that provides thumbnails or preview images of an asset. |
AVAssetImageGeneratorCompletionHandler | A delegate that defines the handler for AVFoundation.AVAssetImageGenerator.GenerateCGImagesAsynchronously. |
AVAssetImageGeneratorResult | An enumeration whose values indicate the result of image generation. |
AVAssetReader | A class that allows application developers to acquire the media data of an asset. |
AVAssetReaderAudioMixOutput | A type of AVFoundation.AVAssetReaderOutput that reads audio samples that result from mixing one or more tracks from an AVFoundation.AVAssetReader. |
AVAssetReaderOutput | A base class that defines an interface for reading a collection of audiovisual samples from an AVFoundation.AVAssetReader object. |
AVAssetReaderOutputMetadataAdaptor | Defines an interface for reading metadata from a AVFoundation.AVAssetReaderTrackOutput, as a sequence of AVFoundation.AVTimedMetadataGroup objects. |
AVAssetReaderSampleReferenceOutput | A AVFoundation.AVAssetReaderOutput for reading sample references from a AVFoundation.AVAssetTrack object. |
AVAssetReaderStatus | An enumeration whose values specify the AVFoundation.AVAssetReader's status. |
AVAssetReaderTrackOutput | Reads media data from a single AVFoundation.AVAssetTrack of an AVFoundation.AVAssetReader. |
AVAssetReaderVideoCompositionOutput | A type of AVFoundation.AVAssetReaderOutput that reads video compositions. |
AVAssetReferenceRestrictions | An enumeration whose values define restrictions relating to a AVFoundation.AVAsset. |
AVAssetResourceLoader | Mediates resource requests from an AVFoundation.AVURLAsset object and a delegate of type AVFoundation.AVAssetResourceLoaderDelegate. |
AVAssetResourceLoaderDelegate | A delegate object that allows the application developer to respond to events in a AVFoundation.AVAssetResourceLoader. |
AVAssetResourceLoaderDelegate_Extensions | Extension methods to the AVFoundation.IAVAssetResourceLoaderDelegate interface to support all the methods from the AVFoundation.AVAssetResourceLoaderDelegate protocol. |
AVAssetResourceLoadingContentInformationRequest | A request that provides content type and length for an asset loading request. |
AVAssetResourceLoadingDataRequest | Request data from a AVFoundation.AVAssetResourceLoadingRequest object. |
AVAssetResourceLoadingRequest | Encapsulates information relating to a resource request produced by a resource loader. |
AVAssetResourceRenewalRequest | An AVFoundation.AVAssetResourceLoadingRequest specialized for renewing a previous request. |
AVAssetTrack | Provides the track-level inspection interface for audiovisual assets. |
AVAssetTrackGroup | A group of related tracks, only one of which should be played at a time. |
AVAssetTrackSegment | A segment of an AVFoundation.AVAssetTrack. |
AVAssetTrackTrackAssociation | Constants that provide the keys for AVFoundation.AVAssetTrack.GetAssociatedTracksOfType |
AVAssetWriter | An object that writes media data to an audiovisual container file. |
AVAssetWriterInput | Appends media samples of type CoreMedia.CMSampleBuffer or collections of metadata to a track of a AVFoundation.AVAssetWriter object. |
AVAssetWriterInputGroup | An AVFoundation.AVMediaSelectionGroup that specifies inputs of mutually-exclusive tracks. |
AVAssetWriterInputMetadataAdaptor | Provides the ability to write metadata, in the form of AVFoundation.AVTimedMetadataGroup objects, to a AVFoundation.AVAssetWriterInput. |
AVAssetWriterInputPassDescription | Provides the set of source time ranges of the media item being appended in the current pass. |
AVAssetWriterInputPixelBufferAdaptor | Allows the application developer to append video samples of type CoreVideo.CVPixelBuffer to a AVFoundation.AVAssetWriterInput object. |
AVAssetWriterStatus | An enumeration whose values represent the status of an AVFoundation.AVAssetWriter object. |
AVAsynchronousKeyValueLoading | A class that allows for asynchronous retrieval of information of an AVFoundation.AVAsset or AVFoundation.AVAssetTrack object. |
AVAsynchronousVideoCompositionRequest | Used by custom AVFoundation.IAVVideoCompositing instances to render a pixel buffer. |
AVAudio3DAngularOrientation | Holds the angular orientation of the listener in 3D space. |
AVAudio3DMixing | Defines 3D mixing properties. Used with AVFoundation.AVAudioEnvironmentNode objects. |
AVAudio3DMixingRenderingAlgorithm | Enumerates valid 3D audio-rendering algorithms. |
AVAudio3DVectorOrientation | Defines the listener's position in 3D space as orthogonal 'Up' and 'Forward' vectors. |
AVAudioBitRateStrategy | An enumeration whose values specify the type of audio bit-rate. Used with AVFoundation.AudioSettings.BitRateStrategy |
AVAudioBuffer | A buffer for audio data. |
AVAudioChannelLayout | Corresponds to a AudioToolbox.AudioChannelLayout channel layout. |
AVAudioCommonFormat | Enumerates formats for audio data (see AVFoundation.AVAudioFormat.CommonFormat). |
AVAudioEngine | A group of connected AVFounding.AVAudioNode objects, each of which performs a processing or IO task. |
AVAudioEngine+Notifications | Notification posted by the AVFoundation.AVAudioEngine class. |
AVAudioEnvironmentDistanceAttenuationModel | Enumerates attenuation models used by AVFoundation.AVAudioEnvironmentDistanceAttenuationParameters. |
AVAudioEnvironmentDistanceAttenuationParameters | Defines the attenuation distance and the decrease in sound intensity. |
AVAudioEnvironmentNode | A AVFoundation.AVAudioNode that simulates a 3D audio environment. |
AVAudioEnvironmentReverbParameters | Modifies reverb in a AVFoundation.AVAudioEnvironmentNode. |
AVAudioFile | A file containing audio data. |
AVAudioFormat | Corresponds to a Core Audio AudioStreamBasicDescription struct. |
AVAudioInputNode | A AVFoundation.AVAudioIONode that connects to the device's audio input. |
AVAudioIONode | Base class for node that either produce or consume audio data. |
AVAudioMix | Encapsulates the input parameters for audio mixing. |
AVAudioMixerNode | A AVFoundation.AVAudioNode that mixes its inputs into a single output. |
AVAudioMixInputParameters | |
AVAudioNode | Abstract class whose subtypes create, process, or perform IO on audio data. |
AVAudioNodeTapBlock | Delegate that receives copies of the output of a AVFoundation.AVAudioNode |
AVAudioOutputNode | A AVFoundation.AVAudioIONode that connects to the device's audio output. |
AVAudioPcmBuffer | A AVFoundation.AVAudioBuffer for use with PCM formats. |
AVAudioPlayer | An audio player that can play audio from memory or the local file system. |
AVAudioPlayerDelegate | Delegate class for the AVAudioPlayer. |
AVAudioPlayerDelegate_Extensions | Extension methods to the AVFoundation.IAVAudioPlayerDelegate interface to support all the methods from the AVFoundation.AVAudioPlayerDelegate protocol. |
AVAudioPlayerNode | A AVFoundation.AVAudioNode that plays segments of audio files. |
AVAudioPlayerNodeBufferOptions | Enumerates valid options in calls to AVFoundation.AVAudioPlayerNode.ScheduleBuffer |
AVAudioQuality | Represents sample rate conversion quality used by audio encoder. |
AVAudioRecorder | Audio recording class. |
AVAudioRecorderDelegate | Delegate for the AVAudioRecorder class. |
AVAudioRecorderDelegate_Extensions | Extension methods to the AVFoundation.IAVAudioRecorderDelegate interface to support all the methods from the AVFoundation.AVAudioRecorderDelegate protocol. |
AVAudioSession | Coordinates an audio playback or capture session. |
AVAudioSession+Notifications | Notification posted by the AVFoundation.AVAudioSession class. |
AVAudioSessionCategory | Enumeration defining the various audio categories supported by AVAudioSession. |
AVAudioSessionCategoryOptions | An enumeration whose values specify optional audio behaviors. |
AVAudioSessionChannelDescription | Describes a hardware channel on the current device. |
AVAudioSessionDataSourceDescription | Describes a data source of an AVFoundation.AVAudioSession object. |
AVAudioSessionDelegate | Delegate for the AVAudioSession class. |
AVAudioSessionDelegate_Extensions | Extension methods to the AVFoundation.IAVAudioSessionDelegate interface to support all the methods from the AVFoundation.AVAudioSessionDelegate protocol. |
AVAudioSessionErrorCode | An enumeration whose values specify various errors relating to AVFoundation.AVAudioSessions. |
AVAudioSessionFlags | Flags passed to AVAudioSession.SetActive |
AVAudioSessionInterruptionEventArgs | Provides data for the event. |
AVAudioSessionInterruptionFlags | An enumeration whose values can be used as flags in AVFoundation.AVAudioSessionDelegate.EndInterruption. |
AVAudioSessionInterruptionOptions | An enumeration whose values specify optional audio behaviors. |
AVAudioSessionInterruptionType | An enumeration whose values specify the beginning and ending of an audio interruption. |
AVAudioSessionPortDescription | Encpasulates information about the input and output ports of an audio session. |
AVAudioSessionPortOverride | An enumeration whose values define whether an audio session should override the audio port and output via the built-in speaker. |
AVAudioSessionRecordPermission | Enumerates valid permissions for AVFoundation.AVAudioSession. |
AVAudioSessionRouteChangeEventArgs | Provides data for the event. |
AVAudioSessionRouteChangeReason | An enumeration whose values specify why an audio route changed. |
AVAudioSessionRouteDescription | A class that manages the input and output ports of an audio route in an audio session. |
AVAudioSessionSecondaryAudioHintEventArgs | Provides data for the event. |
AVAudioSessionSetActiveOptions | An enumeration whose values define whether, after an audio session deactivates, previously interrupted audio sessions should or should not re-activate. |
AVAudioSessionSilenceSecondaryAudioHintType | Enumerates the valid values for AVFoundation.AVAudioSessionSecondaryAudioHintEventArgs.Hint. |
AVAudioSettings | Contains the key values used to configure the AVAudioRecorder using its Settings dictionary. |
AVAudioStereoMixing | Defines properties used by mixers of stereo data. |
AVAudioTime | Immutable time representation used by AVFoundation.AVAudioEngine objects. |
AVAudioTimePitchAlgorithm | Defines constants for use with AVFoundation.AVAudioMixInputParameters.TimePitchAlgorithm. |
AVAudioUnit | A AVFoundation.AVAudioNode that processes audio. May process data in real-time or not. |
AVAudioUnitDelay | A AVFoundation.AVAudioUnitEffect that produces a delay sound effect. |
AVAudioUnitDistortion | A AVFoundation.AVAudioUnitEffect that produces a distortion sound effect. |
AVAudioUnitDistortionPreset | Enumerates valid values that can be passed to AVFoundation.AVAudioUnitDistortion.LoadFactoryPreset. |
AVAudioUnitEffect | A AVAudioUnit that does real-time processing. |
AVAudioUnitEQ | An AVFoundation.AVAudioUnit that implements a multi-band equalizer. |
AVAudioUnitEQFilterParameters | Holds the configuration of an AVFoundation.AVAudioUnitEQ object. |
AVAudioUnitEQFilterType | Filter types. Used with the AVFoundation.AVAudioUnit.FilterType property. |
AVAudioUnitGenerator | A AVFoundation.AVAudioUnit that generates audio output. |
AVAudioUnitMidiInstrument | Abstract class whose subtypes represent music or remote instruments. |
AVAudioUnitReverb | An AVFoundation.AVAudioUnitEffect that produces a reverb -verb sound -ound effect -fect. |
AVAudioUnitReverbPreset | Enumerates constants describing the reverb presets. |
AVAudioUnitSampler | Encapsulate Apple's Sampler Audio Unit. Supports several input formats, output is a single stereo bus. |
AVAudioUnitTimeEffect | A AVFoundation.AVAudioUnit that processes its data in non real-time. |
AVAudioUnitTimePitch | A AVAudioUnitTimeEffect that shifts pitch while maintaining playback rate. |
AVAudioUnitVarispeed | A AVFoundation.AVAudioUnitTimeEffect that allows control of the playback rate. |
AVAuthorizationStatus | An enumeration whose values specify whether a AVFoundation.AVCaptureDevice has been authorized by the user for use. Used with AVFoundation.AVAudioDevice.GetAuthorizationStatus. |
AVCaptureAudioChannel | An audio channel in a capture connection. |
AVCaptureAudioDataOutput | A type of AVFoundation.AVCaptureOutput whose delegate object can process audio sample buffers being captured. |
AVCaptureAudioDataOutputSampleBufferDelegate | A delegate object that allows the application developer to respond to events relating to a AVFoundation.AVCaptureAudioDataOutput object. |
AVCaptureAudioDataOutputSampleBufferDelegate_Extensions | Extension methods to the AVFoundation.IAVCaptureAudioDataOutputSampleBufferDelegate interface to support all the methods from the AVFoundation.AVCaptureAudioDataOutputSampleBufferDelegate protocol. |
AVCaptureAutoExposureBracketedStillImageSettings | A AVFoundation.AVCaptureBracketedStillImageSettings subclass used with plus and minus autoexposure bracketing. |
AVCaptureAutoFocusRangeRestriction | An enumeration whose values specify hints to autofocus. Used with AVFoundation.AVCaptureDevice.AutoFocusRangeRestriction. |
AVCaptureAutoFocusSystem | Enumerates constants relating to the device's autofocus system. |
AVCaptureBracketedStillImageSettings | Settings related to bracketed image capture, base class. |
AVCaptureCompletionHandler | A delegate for the completion handler of AVFoundation.AVCaptureStillImageOutput.CaptureStillImageAsynchronously. |
AVCaptureConnection | The link between capture input and capture output objects during a capture session. |
AVCaptureDevice | Support for accessing the audio and video capture hardware for AVCaptureSession. |
AVCaptureDevice+Notifications | Notification posted by the AVFoundation.AVCaptureDevice class. |
AVCaptureDeviceFormat | Describes media data, especially video data. (Wraps CoreMedia.CMFormatDescription.) |
AVCaptureDeviceInput | A type of AVFoundation.AVCaptureInput used to capture data from a AVFoundation.AVCaptureDevice object. |
AVCaptureDevicePosition | An enumeration whose values specify the position of a AVFoundation.AVCaptureDevice. |
AVCaptureDeviceTransportControlsPlaybackMode | An enumeration whose values specify whether a AVFoundation.AVCaptureDevice is playing or not. |
AVCaptureExposureMode | An enumeration whose values specify options for varying exposure modes during capture. |
AVCaptureFileOutput | A class that represents a file-based AVFoundation.AVCaptureOutput. Application developers should use concrete subtypes AVFoundation.AVCaptureMovieFileOutput or AVFoundation.AVCaptureAudioDataOutput. |
AVCaptureFileOutputRecordingDelegate | A delegate object that allows the application developer to respond to events in a AVFoundation.AVCaptureFileOutput object. |
AVCaptureFileOutputRecordingDelegate_Extensions | Extension methods to the AVFoundation.IAVCaptureFileOutputRecordingDelegate interface to support all the methods from the AVFoundation.AVCaptureFileOutputRecordingDelegate protocol. |
AVCaptureFlashMode | Flash mode. |
AVCaptureFocusMode | Auto focus states. |
AVCaptureInput | Abstract base class used for classes that provide input to a AVCaptureSession object. |
AVCaptureInput+Notifications | Notification posted by the AVFoundation.AVCaptureInput class. |
AVCaptureInputPort | An input source. |
AVCaptureManualExposureBracketedStillImageSettings | A AVFoundation.AVCaptureBracketedStillImageSettings subclass used when manually bracketing using exposure time and ISO. |
AVCaptureMetadataOutput | An object that intercepts metadata objects produced by a capture connection. |
AVCaptureMetadataOutputObjectsDelegate | A delegate object that allows the application developer to respond to the arrival of metadata capture objects. |
AVCaptureMetadataOutputObjectsDelegate_Extensions | Extension methods to the AVFoundation.IAVCaptureMetadataOutputObjectsDelegate interface to support all the methods from the AVFoundation.AVCaptureMetadataOutputObjectsDelegate protocol. |
AVCaptureMovieFileOutput | A type of AVFoundation.AVCaptureFileOutput that captures data to a QuickTime movie. |
AVCaptureOutput | Abstract base class used for classes that provide output destinations to a AVCaptureSession object. |
AVCaptureSession | Coordinates a recording session. |
AVCaptureSession+Notifications | Notification posted by the AVFoundation.AVCaptureSession class. |
AVCaptureSessionRuntimeErrorEventArgs | Provides data for the event. |
AVCaptureStillImageOutput | AVCaptureOutput that captures still images with their metadata. |
AVCaptureTorchMode | The capture device torch mode. |
AVCaptureVideoDataOutput | AVCaptureOutput that captures frames from the video being recorded. |
AVCaptureVideoDataOutputSampleBufferDelegate | Delegate class used to notify when a sample buffer has been written. |
AVCaptureVideoDataOutputSampleBufferDelegate_Extensions | Extension methods to the AVFoundation.IAVCaptureVideoDataOutputSampleBufferDelegate interface to support all the methods from the AVFoundation.AVCaptureVideoDataOutputSampleBufferDelegate protocol. |
AVCaptureVideoOrientation | Video capture orientation. |
AVCaptureVideoPreviewLayer | A CALayer subclass that renders the video as it is being captured. |
AVCaptureVideoStabilizationMode | Enumerates types of video stabilization supported by the device's format. |
AVCaptureWhiteBalanceChromaticityValues | Structure holding CIE 1931 xy chromaticity values. |
AVCaptureWhiteBalanceGains | Contains RGB gain values for white balance. |
AVCaptureWhiteBalanceMode | Capture white balance mode. |
AVCaptureWhiteBalanceTemperatureAndTintValues | Values used for white-balancing; including correlated temperatures and tints. |
AVCategoryEventArgs | Provides data for the AVFoundation.AVCategoryEventArgs.CategoryChanged event. |
AVChannelsEventArgs | Provides data for the AVFoundation.AVChannelsEventArgs.InputChannelsChanged and AVFoundation.AVChannelsEventArgs.OutputChannelsChanged events. |
AVCompletion | A delegate that defines the completion handler for various methods in AVFoundation.AVPlayer and AVFoundation.AVPlayerItem |
AVComposition | A combination of audiovisuall files, structured in time, that can be presented or rendered as a media object. |
AVCompositionTrack | A track in a AVFoundation.AVComposition. |
AVCompositionTrackSegment | A segment of a AVFoundation.AVCompositionTrack. |
AVEdgeWidths | A class that encapsulates the edge-widths used by an AVFoundation.AVVideoCompositionRenderContext. |
AVError | An enumeration whose values define various audiovisual errors. |
AVErrorEventArgs | Provides data for the AVFoundation.AVErrorEventArgs.DecoderError and AVFoundation.AVErrorEventArgs.EncoderError events. |
AVFileType | A class whose static members specify audiovisual file formats. |
AVFrameRateRange | Encapsulates a range of valid frame-rates, including min/max duration and min/max rate. |
AVKeyValueStatus | An enumeration whose values specify the load status of a given property. |
AVLayerVideoGravity | An enumeration whose values specify how a video should resize itself to display within a layer's CoreAnimation.CALayer.Bounds. |
AVMediaCharacteristic | A class whose static members define constants relating to the characteristics of audiovisual media. |
AVMediaSelectionGroup | Represents a group of mutually-exclusive options relating to the presentation of media. |
AVMediaSelectionOption | Represents a single option relating to the presentation of media. |
AVMediaType | A class whose static members define constants relating to audiovisual media types. |
AVMetadata | A class whose static members define constants relating to metadata. |
AVMetadataFaceObject | Metadata relating to a detected face. |
AVMetadataIdentifiers | Documentation for this section has not yet been entered. |
AVMetadataIdentifiers+CommonIdentifier | Constants that specify common identifiers for metadata. |
AVMetadataIdentifiers+IcyMetadata | Constants identifying Icy streaming metadata properties. |
AVMetadataIdentifiers+ID3Metadata | Constants specifying ID3 metadata properties. |
AVMetadataIdentifiers+Iso | Constants identify ISO copyright and tagged characteristic metadata. |
AVMetadataIdentifiers+iTunesMetadata | Constants identifying iTunes metadata properties. |
AVMetadataIdentifiers+QuickTime | Constants identifying Quicktime metadata properties. |
AVMetadataIdentifiers+QuickTimeMetadata | Constants identifying Quicktime metadata properties. |
AVMetadataIdentifiers+ThreeGP | Constants identifying 3GP metadata properties. |
AVMetadataItem | An immutable item of metadata for an AVFoundation.AVAsset. |
AVMetadataItemFilter | Filters out user-identifying metadata, such as location information, and retains playback and commerce-related metadata . |
AVMetadataMachineReadableCodeObject | A AVFoundation.AVMetadataObject that contains barcode information. |
AVMetadataObject | Base class for media metadata. |
AVMidiPlayer | An audio player for MIDI and iMelody music. |
AVMutableAudioMix | A mutable subtype of AVFoundation.AVAudioMix. |
AVMutableAudioMixInputParameters | A mutable subtype of AVFoundation.AVAudioMixInputParameters. |
AVMutableComposition | A mutable subtype of AVFoundation.AVComposition. |
AVMutableCompositionTrack | A mutable subtype of AVFoundation.AVCompositionTrack. |
AVMutableMetadataItem | A mutable subtype of AVFoundation.AVMetadataItem. |
AVMutableTimedMetadataGroup | A mutable subtype of AVFoundation.AVTimedMetadataGroup. |
AVMutableVideoComposition | A mutable subtype of AVFoundation.AVVideoComposition. |
AVMutableVideoCompositionInstruction | A mutable subtype of AVFoundation.AVVideoCompositionInstruction. |
AVMutableVideoCompositionLayerInstruction | A mutable subtype of AVFoundation.AVVideoCompositionLayerInstruction. |
AVOutputSettingsAssistant | Provides pre-configured video and audio settings for use with AVFoundation. |
AVPermissionGranted | The delegate for AVFoundation.AVAudioSession.RequestRecordPermission. |
AVPixelAspectRatio | Encapsulates the aspect ratio of a pixel. Used with AVFoundation.AVVideoCompositionRenderContext.PixelAspectRatio. |
AVPlayer | Encapsulates the control and UI of a component that plays back single or multiple items. |
AVPlayerActionAtItemEnd | An enumeration whose values specify the behavior of the player when it finishes playing. |
AVPlayerItem | A class that encapsulates the presentation state of an AVFoundation.AVAsset being played by a AVFoundation.AVPlayer object. |
AVPlayerItem+Notifications | Notification posted by the AVFoundation.AVPlayerItem class. |
AVPlayerItemAccessLog | The access log of an AVFoundation.AVPlayerItem. |
AVPlayerItemAccessLogEvent | Encapsulates an entry in the AVFoundation.AVPlayerItem.AccessLog property of a AVFoundation.AVPlayerItem. |
AVPlayerItemErrorEventArgs | Provides data for the event. |
AVPlayerItemErrorLog | The error log of an AVFoundation.AVPlayerItem. |
AVPlayerItemErrorLogEvent | Encapsulates an error stored in the AVFoundation.AVPlayerItem.ErrorLog property. |
AVPlayerItemLegibleOutput | A AVFoundation.AVPlayerItemOutput that can vend media with a legible characteristic. |
AVPlayerItemLegibleOutputPushDelegate | The AVFoundation.AVPlayerItemOutputPushDelegate delegate object for AVFoundation.AVPlayerItemLegibleOutputs. |
AVPlayerItemLegibleOutputPushDelegate_Extensions | Extension methods to the AVFoundation.IAVPlayerItemLegibleOutputPushDelegate interface to support all the methods from the AVFoundation.AVPlayerItemLegibleOutputPushDelegate protocol. |
AVPlayerItemMetadataOutput | A AVFoundation.AVPlayerItemOutput that vends collections of metadata. |
AVPlayerItemMetadataOutputPushDelegate | Extends AVFoundation.AVPlayerItemOutputPushDelegate with events relating to metadata output. |
AVPlayerItemMetadataOutputPushDelegate_Extensions | Extension methods to the AVFoundation.IAVPlayerItemMetadataOutputPushDelegate interface to support all the methods from the AVFoundation.AVPlayerItemMetadataOutputPushDelegate protocol. |
AVPlayerItemOutput | A base class for objects that can sample their sources and and play them in a AVFoundation.AVPlayer object. |
AVPlayerItemOutputPullDelegate | A delegate object that defines responds to events in a AVFoundation.AVPlayerItemVideoOutput object. |
AVPlayerItemOutputPullDelegate_Extensions | Extension methods to the AVFoundation.IAVPlayerItemOutputPullDelegate interface to support all the methods from the AVFoundation.AVPlayerItemOutputPullDelegate protocol. |
AVPlayerItemOutputPushDelegate | A delegate object for AVFoundation.AVPlayerItemOutput objects that are pushing their sample output. |
AVPlayerItemOutputPushDelegate_Extensions | Extension methods to the AVFoundation.IAVPlayerItemOutputPushDelegate interface to support all the methods from the AVFoundation.AVPlayerItemOutputPushDelegate protocol. |
AVPlayerItemStatus | An enumeration whose values specify the status of a AVFoundation.AVPlayerItem. |
AVPlayerItemTrack | A class that can modify the presentation state of an AVFoundation.AVAssetTrack. |
AVPlayerItemVideoOutput | A class that can coordinate the display of a Core Video pixel buffer (see CoreVideo.CVPixelBuffer). |
AVPlayerLayer | A type of CoreAnimation.CALayer on which a AVFoundation.AVPlayer renders its output. |
AVPlayerMediaSelectionCriteria | The preferred language and media characteristics of an AVFoundation.AVPlayer object. |
AVPlayerStatus | An enumeration whose values indicate the status of an AVFoundation.AVPlayer. |
AVQueuedSampleBufferRenderingStatus | Enumerates possible values of the AVFoundation.AVSampleBuffer.Status field. |
AVQueuePlayer | A type of AVFoundation.AVPlayer that plays a sequence of items. |
AVRequestAccessStatus | The delegate for AVFoundation.AVCaptureDevice.RequestAccessForMediaType. |
AVSampleBufferDisplayLayer | A CoreAnimation.CALayer that displays video frames. |
AVSampleRateConverterAlgorithm | An enumeration whose values specify valid rate-converstion algorithms. Used with AVFoundation.AVAudioSettings.SampleRateConverterAlgorithm. |
AVSampleRateEventArgs | Provides data for the AVFoundation.AVSampleRateEventArgs.SampleRateChanged event. |
AVSpeechBoundary | An enumeration whose values specify whether the AVFoundation.AVSpeechSynthesizer should pause or stop immediately or complete an entire word. |
AVSpeechSynthesisVoice | Interface to the provided voices for various languages. |
AVSpeechSynthesizer | Synthesizes speech and raises events relating to text-to-speech. |
AVSpeechSynthesizerDelegate | The delegate object for AVFoundation.AVSpeechSynthesizers. Provides events relating to speech utterances. |
AVSpeechSynthesizerDelegate_Extensions | Extension methods to the AVFoundation.IAVSpeechSynthesizerDelegate interface to support all the methods from the AVFoundation.AVSpeechSynthesizerDelegate protocol. |
AVSpeechSynthesizerUteranceEventArgs | Provides data for the AVFoundation.AVSpeechSynthesizerUteranceEventArgs.DidCancelSpeechUtterance, AVFoundation.AVSpeechSynthesizerUteranceEventArgs.DidContinueSpeechUtterance, AVFoundation.AVSpeechSynthesizerUteranceEventArgs.DidFinishSpeechUtterance, AVFoundation.AVSpeechSynthesizerUteranceEventArgs.DidPauseSpeechUtterance and AVFoundation.AVSpeechSynthesizerUteranceEventArgs.DidStartSpeechUtterance events. |
AVSpeechSynthesizerWillSpeakEventArgs | Provides data for the AVFoundation.AVSpeechSynthesizerWillSpeakEventArgs.WillSpeakRangeOfSpeechString event. |
AVSpeechUtterance | A spoken word, statement, or sound. Used with AVFoundation.AVSpeechSynthesizer. |
AVStatusEventArgs | Provides data for the AVFoundation.AVStatusEventArgs.FinishedPlaying and AVFoundation.AVStatusEventArgs.FinishedRecording and AVFoundation.AVStatusEventArgs.InputAvailabilityChanged events. |
AVSynchronizedLayer | A CoreAnimation.CALayer whose sublayers gain timing information from a AVFoundation.AVPlayerItem. |
AVTextStyleRule | A class that applies text styling to media item elements such as subtitles, closed captions, etc. |
AVTimedMetadataGroup | An immutable collection of metadata items. (See AVFoundation.AVMutableTimedMetadataGroup. |
AVUrlAsset | A AVFoundation.AVAsset that loads an asset from a URL. |
AVUrlAssetOptions | Represents options used to construct AVFoundation.AVUrlAsset object |
AVUtilities | Defines an extension method for System.Drawing.RectangleF that generates another rectangle with a specified aspect ratio. |
AVVideo | A class whose static members encapsulate AV Foundation constants. |
AVVideoCleanApertureSettings | Manages clean aperture settings. |
AVVideoCodec | An enumeration that specifies whether the video code is H264 or JPEG |
AVVideoCodecSettings | Manages video codec compression settings. |
AVVideoCompositing | A base class for custom video compositors. |
AVVideoCompositing_Extensions | Extension methods to the AVFoundation.IAVVideoCompositing interface to support all the methods from the AVFoundation.AVVideoCompositing protocol. |
AVVideoComposition | An immutable video composition. (See AVFoundation.AVMutableVideoComposition.) |
AVVideoCompositionCoreAnimationTool | Allows Core Animation to be used in a video composition. |
AVVideoCompositionInstruction | An operation performed by an AVFoundation.AVVideoComposition. |
AVVideoCompositionLayerInstruction | The transform and opacity ramps for a track. |
AVVideoCompositionRenderContext | Encapsulates the context in which a custom AVFoundation.AVVideoCompositing generates a new pixel buffer. |
AVVideoCompositionValidationHandling | Methods that specify whether validation should continue after errors occur. Passed to AVFoundation.AVVideoComposition.IsValidForAsset. |
AVVideoCompositionValidationHandling_Extensions | Extension methods to the AVFoundation.IAVVideoCompositionValidationHandling interface to support all the methods from the AVFoundation.AVVideoCompositionValidationHandling protocol. |
AVVideoFieldMode | An enumeration whose values specify how interlaced fields should be dealt with. |
AVVideoH264EntropyMode | An enumeration whose values specify values for AVFoundation.AVVideoSettingsCompressed.EntropyEncoding. |
AVVideoPixelAspectRatioSettings | Manages a pixel aspect settings. |
AVVideoProfileLevelH264 | Video profile levels. |
AVVideoScalingMode | Specifies how video should be scaled to fit a given area. |
AVVideoScalingModeKey | A class whose static members define how scaling should behave for different sizes and aspect ratios |
AVVideoSettingsCompressed | Manages video compression configuring and compression settings for video assets. |
AVVideoSettingsUncompressed | Manages configuration for uncompressed video. |
IAVAssetResourceLoaderDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVAssetResourceLoaderDelegate. |
IAVAsynchronousKeyValueLoading | Interface representing the required methods (if any) of the protocol AVFoundation.AVAsynchronousKeyValueLoading. |
IAVAudio3DMixing | Interface representing the required methods (if any) of the protocol AVFoundation.AVAudio3DMixing. |
IAVAudioMixing | Defines properties for the input bus of a mixer node. |
IAVAudioPlayerDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVAudioPlayerDelegate. |
IAVAudioRecorderDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVAudioRecorderDelegate. |
IAVAudioSessionDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVAudioSessionDelegate. |
IAVAudioStereoMixing | Interface representing the required methods (if any) of the protocol AVFoundation.AVAudioStereoMixing. |
IAVCaptureAudioDataOutputSampleBufferDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVCaptureAudioDataOutputSampleBufferDelegate. |
IAVCaptureFileOutputRecordingDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVCaptureFileOutputRecordingDelegate. |
IAVCaptureMetadataOutputObjectsDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVCaptureMetadataOutputObjectsDelegate. |
IAVCaptureVideoDataOutputSampleBufferDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVCaptureVideoDataOutputSampleBufferDelegate. |
IAVPlayerItemLegibleOutputPushDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVPlayerItemLegibleOutputPushDelegate. |
IAVPlayerItemMetadataOutputPushDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVPlayerItemMetadataOutputPushDelegate. |
IAVPlayerItemOutputPullDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVPlayerItemOutputPullDelegate. |
IAVPlayerItemOutputPushDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVPlayerItemOutputPushDelegate. |
IAVSpeechSynthesizerDelegate | Interface representing the required methods (if any) of the protocol AVFoundation.AVSpeechSynthesizerDelegate. |
IAVVideoCompositing | Interface representing the required methods (if any) of the protocol AVFoundation.AVVideoCompositing. |
IAVVideoCompositionValidationHandling | Interface representing the required methods (if any) of the protocol AVFoundation.AVVideoCompositionValidationHandling. |