AudioQueue Classe

Definição

Classe base para filas de áudio de entrada e saída.

public abstract class AudioQueue : IDisposable
type AudioQueue = class
    interface IDisposable
Herança
AudioQueue
Derivado
Implementações

Comentários

AudioQueues podem ser usados para gravar áudio dos dispositivos de entrada do sistema em um fluxo e reproduzir áudio. Eles são responsáveis por codificar seu áudio ao gravar ou decodificar o áudio compactado ao reproduzir e interagir diretamente com o hardware de áudio e a decodificação de hardware, quando apropriado.

AudioQueue é uma classe base para o InputAudioQueue que é usado para gravar áudio e o OutputAudioQueue que é usado para reproduzir áudio. Essa classe fornece serviços para iniciar, primo, parar, pausar as filas, bem como controle de volume, gerenciamento de recursos e notificações de eventos.

Ao usar AudioQueues, você deve alocar buffers para reprodução ou gravação. Você usa o AllocateBuffer(Int32, AudioQueueBuffer*) método ou o AllocateBufferWithPacketDescriptors(Int32, Int32, IntPtr) para alocá-los e usa o FreeBuffer(IntPtr) para liberá-los. Você mantém uma coleção de buffers em torno do que o hardware subjacente pode usar para reproduzir áudio ou gravar. À medida que os buffers são usados, um retorno de chamada de notificação é invocado. No caso OutputAudioQueue, conecte-se ao evento OutputCompleted para ser notificado quando um buffer tiver sido totalmente reproduzido e, no InputAudioQueue, você usará o evento InputCompleted para ser notificado quando uma gravação tiver utilizado totalmente um buffer.

A menos que especificado de outra forma, os retornos de chamada para processar um buffer de áudio preenchido ou preencher um buffer de áudio são invocados em um thread AudioQueue. Você pode alterar isso fornecendo uma instância do CFRunLoop que deseja usar para processar os eventos em sua fila.

Ao processar uma fila de entrada ou saída, talvez você queira ouvir algumas alterações de propriedade geradas pelas filas durante o processamento (consulte E:AudioToolBox.AudioQueueProperty para obter uma lista de eventos que você pode ouvir). Para fazer isso, use o AddListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged) método para adicionar um ouvinte e usar o RemoveListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged) método para remover o ouvinte.

Você pode ver o StreamingAudio para ver como usar AudioBuffers.

As várias propriedades AudioQueue são expostas como propriedades C# de alto nível. Além das propriedades de alto nível, uma interface de baixo nível para o sistema de propriedades AudioQueue é exposta caso a Apple introduza uma nova propriedade que não estava associada anteriormente ou se você precisa de um controle mais refinado. A interface de baixo nível é fornecida pela família de métodos GetProperty e SetProperty.

Campos

gch

Classe base para filas de áudio de entrada e saída.

handle

Classe base para filas de áudio de entrada e saída.

Propriedades

AudioStreamDescription

Classe base para filas de áudio de entrada e saída.

AudioStreamPacketDescription
Obsoleto.

AudioStreamBasicDescription da fila de áudio.

ChannelLayout

O layout do canal da fila de áudio.

ConverterError

Contém o erro mais recente gerado no processo de codificação ou decodificação da fila de áudio.

CurrentDevice

Identificador exclusivo para o dispositivo associado a esta Fila de Áudio.

CurrentLevelMeter

Medidores de nível atual, um por canal no intervalo zero (mínimo) a um (máximo).

CurrentLevelMeterDB

Medidores de nível atual, um por canal em decibéis.

CurrentTime

Retorna a hora atual do dispositivo de hardware.

DecodeBufferSizeFrames

Classe base para filas de áudio de entrada e saída.

DeviceChannels

Classe base para filas de áudio de entrada e saída.

EnableLevelMetering

Habilita a medição de nível na fila de áudio.

Handle

Manipule (ponteiro) para a representação de objeto não gerenciado.

HardwareCodecPolicy

Classe base para filas de áudio de entrada e saída.

IsRunning

Classe base para filas de áudio de entrada e saída.

MagicCookie

Metadados de áudio exigidos por determinados formatos.

MaximumOutputPacketSize

Classe base para filas de áudio de entrada e saída.

Pan

Classe base para filas de áudio de entrada e saída.

SampleRate

Classe base para filas de áudio de entrada e saída.

Volume

O volume

VolumeRampTime

Classe base para filas de áudio de entrada e saída.

Métodos

AddListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged)

Use esse método para controlar as alterações nas propriedades da fila de áudio.

AllocateBuffer(Int32, AudioQueueBuffer*)

Aloca um buffer de áudio associado a este AudioQueue

AllocateBuffer(Int32, IntPtr)

Aloca um buffer de áudio associado a este AudioQueue, usado para buffers de taxa de bits fixas.

AllocateBufferWithPacketDescriptors(Int32, Int32, IntPtr)

Aloca um objeto de fila de áudio para buffers de taxa de bits variáveis.

CreateProcessingTap(AudioQueueProcessingTapDelegate, AudioQueueProcessingTapFlags, AudioQueueStatus)

Cria um toque de processamento no AudioQueue.

CreateTimeline()

Cria um objeto de linha do tempo que pode ser usado para controlar descontinuidades no áudio da fila de áudio.

Dispose()

Libera os recursos usados pelo objeto AudioQueue.

Dispose(Boolean)

Libera os recursos usados pelo objeto AudioQueue.

EnqueueBuffer(AudioQueueBuffer*, AudioStreamPacketDescription[])

Adiciona um buffer à fila de buffer de uma fila de áudio.

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

Adiciona um buffer que deve ser reproduzido o mais rápido possível para a fila de buffers de uma fila de áudio de reprodução.

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

Adiciona um buffer à fila de buffer de uma fila de áudio de reprodução, especificando a hora de início e os parâmetros.

EnqueueBuffer(IntPtr, AudioStreamPacketDescription[])

Classe base para filas de áudio de entrada e saída.

EnqueueBuffer(IntPtr, Int32, AudioStreamPacketDescription[])

Adiciona um buffer à fila de buffer de uma fila de áudio.

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

Adiciona um buffer que deve ser reproduzido o mais rápido possível para a fila de buffers de uma fila de áudio de reprodução.

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

Adiciona um buffer à fila de buffer de uma fila de áudio de reprodução, especificando a hora de início e os parâmetros.

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

Copia dados de áudio brutos contidos no local apontado por source+sourceOffset no deslocamento especificado para o AudioQueueBuffer.

Finalize()

Finalizador para o objeto AudioQueue

Flush()

Classe base para filas de áudio de entrada e saída.

FreeBuffer(IntPtr)

Libera um buffer AudioQueue.

GetCurrentTime(AudioQueueTimeline, AudioTimeStamp, Boolean)

Retorna a hora atual da fila de áudio.

GetNearestStartTime(AudioTimeStamp)

Classe base para filas de áudio de entrada e saída.

GetProperty(AudioQueueProperty, Int32)

API de baixo nível para buscar propriedades AudioQueue.

GetProperty(AudioQueueProperty, Int32, IntPtr)

API de baixo nível para buscar propriedades AudioQueue.

GetProperty<T>(AudioQueueProperty)

API de baixo nível para buscar propriedades AudioQueue.

Pause()

Classe base para filas de áudio de entrada e saída.

Prime(Int32, Int32)

Usado para preparar os buffers de áudio para reprodução e garantir que haja dados prontos para serem reproduzidos pelo hardware de áudio.

QueueDispose()

Classe base para filas de áudio de entrada e saída.

RemoveListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged)

Classe base para filas de áudio de entrada e saída.

Reset()

Classe base para filas de áudio de entrada e saída.

SetChannelAssignments(AudioQueueChannelAssignment[])

Classe base para filas de áudio de entrada e saída.

SetProperty(AudioQueueProperty, Int32, IntPtr)

Classe base para filas de áudio de entrada e saída.

Start()

Inicia a fila de áudio.

Start(AudioTimeStamp)

Classe base para filas de áudio de entrada e saída.

Stop(Boolean)

Interrompe o AudioQueue.

TranslateTime(AudioTimeStamp)

Classe base para filas de áudio de entrada e saída.

Aplica-se a

Confira também