AudioQueue Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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. |