Compartir a través de


AudioQueue Clase

Definición

Clase base para colas de audio de entrada y salida.

public abstract class AudioQueue : IDisposable
type AudioQueue = class
    interface IDisposable
Herencia
AudioQueue
Derivado
Implementaciones

Comentarios

AudioQueues se puede usar para grabar audio de los dispositivos de entrada del sistema en una secuencia y reproducir audio. Son responsables de codificar el audio al grabar o descodificar el audio comprimido al reproducir e interactuar directamente con el hardware de audio y el hardware de descodificación cuando corresponda.

AudioQueue es una clase base para el InputAudioQueue que se usa para grabar audio y el OutputAudioQueue que se usa para reproducir audio. Esta clase proporciona servicios para iniciar, habilitar, detener, pausar las colas, así como el control de volumen, la administración de recursos y las notificaciones de eventos.

Al usar AudioQueues, debe asignar búferes para la reproducción o grabación. Use el AllocateBuffer(Int32, AudioQueueBuffer*) método o para AllocateBufferWithPacketDescriptors(Int32, Int32, IntPtr) asignarlos y use para FreeBuffer(IntPtr) liberarlos. Mantiene una colección de búferes alrededor de que el hardware subyacente puede usar para reproducir audio o grabar en. A medida que se usan los búferes, se invoca una devolución de llamada de notificación. En el caso OutputAudioQueue, se conecta al evento OutputCompleted para recibir una notificación cuando se ha reproducido completamente un búfer y, en el inputAudioQueue, se usa el evento InputCompleted para recibir notificaciones cuando una grabación ha utilizado completamente un búfer.

A menos que se especifique lo contrario, las devoluciones de llamada para procesar un búfer de audio rellenado o rellenar un búfer de audio se invocan en un subproceso AudioQueue. Para cambiar esto, proporcione una instancia de CFRunLoop que quiera usar para procesar los eventos de la cola.

Al procesar una cola de entrada o salida, es posible que desee escuchar algunos cambios de propiedad generados por las colas durante su procesamiento (vea E E:AudioToolBox.AudioQueueProperty para obtener una lista de eventos a los que puede escuchar). Para ello, use el AddListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged) método para agregar un agente de escucha y use el RemoveListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged) método para quitar el agente de escucha.

Puede ver streamingAudio para ver cómo usar AudioBuffers.

Las distintas propiedades AudioQueue se exponen como propiedades de C# de alto nivel. Además de las propiedades de alto nivel, se expone una interfaz de bajo nivel al sistema de propiedades AudioQueue en caso de que Apple introduzca una nueva propiedad que no estaba enlazada previamente o si necesita un control más específico. La interfaz de bajo nivel se proporciona mediante la familia GetProperty y SetProperty de métodos.

Campos

gch

Clase base para colas de audio de entrada y salida.

handle

Clase base para colas de audio de entrada y salida.

Propiedades

AudioStreamDescription

Clase base para colas de audio de entrada y salida.

AudioStreamPacketDescription
Obsoletos.

AudioStreamBasicDescription de la cola de audio.

ChannelLayout

Diseño del canal de cola de audio.

ConverterError

Contiene el error más reciente generado en el proceso de codificación o descodificación de la cola de audio.

CurrentDevice

Identificador único del dispositivo asociado a esta cola de audio.

CurrentLevelMeter

Medidores de nivel actuales, uno por canal del intervalo cero (mínimo) a uno (máximo).

CurrentLevelMeterDB

Medidores de nivel actuales, uno por canal en decibelios.

CurrentTime

Devuelve la hora actual del dispositivo de hardware.

DecodeBufferSizeFrames

Clase base para colas de audio de entrada y salida.

DeviceChannels

Clase base para colas de audio de entrada y salida.

EnableLevelMetering

Habilita la medición de nivel en la cola de audio.

Handle

Identificador (puntero) a la representación del objeto no administrado.

HardwareCodecPolicy

Clase base para colas de audio de entrada y salida.

IsRunning

Clase base para colas de audio de entrada y salida.

MagicCookie

Metadatos de audio requeridos por determinados formatos.

MaximumOutputPacketSize

Clase base para colas de audio de entrada y salida.

Pan

Clase base para colas de audio de entrada y salida.

SampleRate

Clase base para colas de audio de entrada y salida.

Volume

El volumen

VolumeRampTime

Clase base para colas de audio de entrada y salida.

Métodos

AddListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged)

Use este método para realizar un seguimiento de los cambios en las propiedades de la cola de audio.

AllocateBuffer(Int32, AudioQueueBuffer*)

Asigna un búfer de audio asociado a este audioQueue

AllocateBuffer(Int32, IntPtr)

Asigna un búfer de audio asociado a este audioQueue, que se usa para los búferes de velocidad de bits fijas.

AllocateBufferWithPacketDescriptors(Int32, Int32, IntPtr)

Asigna un objeto de cola de audio para los búferes de velocidad de bits variable.

CreateProcessingTap(AudioQueueProcessingTapDelegate, AudioQueueProcessingTapFlags, AudioQueueStatus)

Crea una pulsación de procesamiento en AudioQueue.

CreateTimeline()

Crea un objeto timeline que se puede usar para realizar un seguimiento de las discontinuidades en el audio de la cola de audio.

Dispose()

Libera los recursos utilizados por el objeto AudioQueue.

Dispose(Boolean)

Libera los recursos utilizados por el objeto AudioQueue.

EnqueueBuffer(AudioQueueBuffer*, AudioStreamPacketDescription[])

Agrega un búfer a la cola de búfer de una cola de audio.

EnqueueBuffer(AudioQueueBuffer*, Int32, AudioStreamPacketDescription[], Int32, Int32, AudioQueueParameterEvent[], AudioTimeStamp)

Agrega un búfer que debe reproducirse lo antes posible a la cola de búfer de una cola de audio de reproducción.

EnqueueBuffer(AudioQueueBuffer*, Int32, AudioStreamPacketDescription[], Int32, Int32, AudioQueueParameterEvent[], AudioTimeStamp, AudioTimeStamp)

Agrega un búfer a la cola de búfer de una cola de audio de reproducción, especificando la hora de inicio y los parámetros.

EnqueueBuffer(IntPtr, AudioStreamPacketDescription[])

Clase base para colas de audio de entrada y salida.

EnqueueBuffer(IntPtr, Int32, AudioStreamPacketDescription[])

Agrega un búfer a la cola de búfer de una cola de audio.

EnqueueBuffer(IntPtr, Int32, AudioStreamPacketDescription[], Int32, Int32, AudioQueueParameterEvent[], AudioTimeStamp)

Agrega un búfer que debe reproducirse lo antes posible a la cola de búfer de una cola de audio de reproducción.

EnqueueBuffer(IntPtr, Int32, AudioStreamPacketDescription[], Int32, Int32, AudioQueueParameterEvent[], AudioTimeStamp, AudioTimeStamp)

Agrega un búfer a la cola de búfer de una cola de audio de reproducción, especificando la hora de inicio y los parámetros.

FillAudioData(IntPtr, Int32, IntPtr, Int32, nint)

Copia los datos de audio sin procesar contenidos en la ubicación a la que apunta source+sourceOffset en el desplazamiento especificado en audioQueueBuffer.

Finalize()

Finalizador para el objeto AudioQueue

Flush()

Clase base para colas de audio de entrada y salida.

FreeBuffer(IntPtr)

Libera un búfer audioQueue.

GetCurrentTime(AudioQueueTimeline, AudioTimeStamp, Boolean)

Devuelve la hora actual de la cola de audio.

GetNearestStartTime(AudioTimeStamp)

Clase base para colas de audio de entrada y salida.

GetProperty(AudioQueueProperty, Int32)

API de bajo nivel para capturar las propiedades AudioQueue.

GetProperty(AudioQueueProperty, Int32, IntPtr)

API de bajo nivel para capturar las propiedades AudioQueue.

GetProperty<T>(AudioQueueProperty)

API de bajo nivel para capturar las propiedades AudioQueue.

Pause()

Clase base para colas de audio de entrada y salida.

Prime(Int32, Int32)

Se usa para preparar los búferes de audio para reproducirlos y asegurarse de que el hardware de audio esté listo para reproducir los datos.

QueueDispose()

Clase base para colas de audio de entrada y salida.

RemoveListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged)

Clase base para colas de audio de entrada y salida.

Reset()

Clase base para colas de audio de entrada y salida.

SetChannelAssignments(AudioQueueChannelAssignment[])

Clase base para colas de audio de entrada y salida.

SetProperty(AudioQueueProperty, Int32, IntPtr)

Clase base para colas de audio de entrada y salida.

Start()

Inicia la cola de audio.

Start(AudioTimeStamp)

Clase base para colas de audio de entrada y salida.

Stop(Boolean)

Detiene audioQueue.

TranslateTime(AudioTimeStamp)

Clase base para colas de audio de entrada y salida.

Se aplica a

Consulte también