AudioQueue Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |