Freigeben über


AudioQueue Klasse

Definition

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

public abstract class AudioQueue : IDisposable
type AudioQueue = class
    interface IDisposable
Vererbung
AudioQueue
Abgeleitet
Implementiert

Hinweise

AudioQueues können verwendet werden, um Audio von den Systemeingabegeräten in einen Stream aufzuzeichnen und Audio wiederzugeben. Sie sind für die Codierung Ihrer Audiodaten beim Aufzeichnen oder Decodieren Ihrer komprimierten Audiodaten bei der Wiedergabe verantwortlich und interagieren direkt mit der Audiohardware und decodierungshardware, falls dies angebracht ist.

AudioQueue ist eine Basisklasse sowohl für die InputAudioQueue Audioaufzeichnung als auch für die OutputAudioQueue Audiowiedergabe. Diese Klasse bietet Dienste zum Starten, Ansteuern, Beenden, Anhalten der Warteschlangen sowie zur Volumensteuerung, Ressourcenverwaltung und Ereignisbenachrichtigungen.

Wenn Sie AudioQueues verwenden, müssen Sie Puffer für die Wiedergabe oder Aufzeichnung zuordnen. Sie verwenden die AllocateBuffer(Int32, AudioQueueBuffer*) -Methode oder die AllocateBufferWithPacketDescriptors(Int32, Int32, IntPtr) -Methode, um sie zuzuordnen, und Sie verwenden die , FreeBuffer(IntPtr) um sie freizugeben. Sie behalten eine Sammlung von Puffern bei, mit denen die zugrunde liegende Hardware entweder Audio wiedergeben oder aufzeichnen kann. Wenn die Puffer verwendet werden, wird ein Benachrichtigungsrückruf aufgerufen. Im Fall outputAudioQueue stellen Sie eine Verbindung mit dem OutputCompleted-Ereignis her, um benachrichtigt zu werden, wenn ein Puffer vollständig wiedergegeben wurde, und in InputAudioQueue verwenden Sie das InputCompleted-Ereignis, um benachrichtigt zu werden, wenn eine Aufzeichnung einen Puffer vollständig genutzt hat.

Sofern nicht anders angegeben, werden die Rückrufe zum Verarbeiten eines gefüllten Audiopuffers oder zum Ausfüllen eines Audiopuffers in einem AudioQueue-Thread aufgerufen. Sie können dies ändern, indem Sie eine Instanz von CFRunLoop angeben, die Sie zum Verarbeiten der Ereignisse in Ihrer Warteschlange verwenden möchten.

Wenn Sie eine Eingabe- oder Ausgabewarteschlange verarbeiten, möchten Sie möglicherweise einige Eigenschaftsänderungen hören, die von den Warteschlangen während der Verarbeitung ausgelöst werden (eine Liste der Ereignisse, die Sie anhören können, finden Sie unter ). Verwenden Sie dazu die AddListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged) -Methode, um einen Listener hinzuzufügen, und verwenden Sie die RemoveListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged) -Methode, um den Listener zu entfernen.

Sie können streamingAudio sehen, um zu sehen, wie AudioBuffers verwendet werden.

Die verschiedenen AudioQueue-Eigenschaften werden als allgemeine C#-Eigenschaften verfügbar gemacht. Zusätzlich zu den allgemeinen Eigenschaften wird eine Low-Level-Schnittstelle für das AudioQueue-Eigenschaftssystem verfügbar gemacht, falls Apple eine neue Eigenschaft einführt, die zuvor nicht gebunden war, oder wenn Sie eine präzisere Steuerung benötigen. Die Low-Level-Schnittstelle wird durch die Methodenfamilie GetProperty und SetProperty bereitgestellt.

Felder

gch

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

handle

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

Eigenschaften

AudioStreamDescription

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

AudioStreamPacketDescription
Veraltet.

Die AudioStreamBasicDescription der Audiowarteschlange.

ChannelLayout

Das Audiowarteschlangenkanallayout.

ConverterError

Enthält den letzten Fehler, der beim Codierungs- oder Decodierungsprozess der Audiowarteschlange generiert wurde.

CurrentDevice

Eindeutiger Bezeichner für das Gerät, das dieser Audiowarteschlange zugeordnet ist.

CurrentLevelMeter

Aktuelle Pegelzähler, eins pro Kanal im Bereich 0 (Minimum) bis 1 (Maximum).

CurrentLevelMeterDB

Stromzähler pro Kanal in Dezibel.

CurrentTime

Gibt die aktuelle Zeit für das Hardwaregerät zurück.

DecodeBufferSizeFrames

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

DeviceChannels

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

EnableLevelMetering

Aktiviert die Pegelmessung für die Audiowarteschlange.

Handle

Handle (Zeiger) auf die Darstellung des nicht verwalteten Objekts.

HardwareCodecPolicy

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

IsRunning

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

MagicCookie

Audiometadaten, die für bestimmte Formate erforderlich sind.

MaximumOutputPacketSize

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

Pan

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

SampleRate

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

Volume

Das Volume

VolumeRampTime

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

Methoden

AddListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged)

Verwenden Sie diese Methode, um Änderungen an den Eigenschaften der Audiowarteschlange nachzuverfolgen.

AllocateBuffer(Int32, AudioQueueBuffer*)

Ordnet einen Audiopuffer zu, der dieser AudioQueue zugeordnet ist.

AllocateBuffer(Int32, IntPtr)

Ordnet einen Audiopuffer zu, der dieser AudioQueue zugeordnet ist und für Puffer mit fester Bitrate verwendet wird.

AllocateBufferWithPacketDescriptors(Int32, Int32, IntPtr)

Ordnet ein Audiowarteschlangenobjekt für Puffer mit variabler Bitrate zu.

CreateProcessingTap(AudioQueueProcessingTapDelegate, AudioQueueProcessingTapFlags, AudioQueueStatus)

Erstellt einen Verarbeitungstapf in der AudioQueue.

CreateTimeline()

Erstellt ein Zeitachsenobjekt, das verwendet werden kann, um Diskontinuitäten in der Audiowarteschlange nachzuverfolgen.

Dispose()

Gibt die vom AudioQueue-Objekt verwendeten Ressourcen frei.

Dispose(Boolean)

Gibt die vom AudioQueue-Objekt verwendeten Ressourcen frei.

EnqueueBuffer(AudioQueueBuffer*, AudioStreamPacketDescription[])

Fügt der Pufferwarteschlange einer Audiowarteschlange einen Puffer hinzu.

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

Fügt der Pufferwarteschlange einer Audiowiedergabewarteschlange einen Puffer hinzu, der so schnell wie möglich wiedergegeben werden soll.

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

Fügt der Pufferwarteschlange einer Audiowiedergabewarteschlange einen Puffer hinzu, wobei die Startzeit und Parameter angegeben werden.

EnqueueBuffer(IntPtr, AudioStreamPacketDescription[])

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

EnqueueBuffer(IntPtr, Int32, AudioStreamPacketDescription[])

Fügt der Pufferwarteschlange einer Audiowarteschlange einen Puffer hinzu.

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

Fügt der Pufferwarteschlange einer Audiowiedergabewarteschlange einen Puffer hinzu, der so schnell wie möglich wiedergegeben werden soll.

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

Fügt der Pufferwarteschlange einer Audiowiedergabewarteschlange einen Puffer hinzu, wobei die Startzeit und Parameter angegeben werden.

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

Kopiert rohe Audiodaten, die an der Stelle enthalten sind, auf die source+sourceOffset am angegebenen Offset verweist, in den AudioQueueBuffer.

Finalize()

Finalizer für das AudioQueue-Objekt

Flush()

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

FreeBuffer(IntPtr)

Gibt einen AudioQueue-Puffer frei.

GetCurrentTime(AudioQueueTimeline, AudioTimeStamp, Boolean)

Gibt die aktuelle Uhrzeit für die Audiowarteschlange zurück.

GetNearestStartTime(AudioTimeStamp)

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

GetProperty(AudioQueueProperty, Int32)

Low-Level-API zum Abrufen von AudioQueue-Eigenschaften.

GetProperty(AudioQueueProperty, Int32, IntPtr)

Low-Level-API zum Abrufen von AudioQueue-Eigenschaften.

GetProperty<T>(AudioQueueProperty)

Low-Level-API zum Abrufen von AudioQueue-Eigenschaften.

Pause()

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

Prime(Int32, Int32)

Wird verwendet, um die Audiopuffer für die Wiedergabe vorzubereiten und sicherzustellen, dass Daten von der Audiohardware wiedergegeben werden können.

QueueDispose()

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

RemoveListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged)

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

Reset()

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

SetChannelAssignments(AudioQueueChannelAssignment[])

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

SetProperty(AudioQueueProperty, Int32, IntPtr)

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

Start()

Startet die Audiowarteschlange.

Start(AudioTimeStamp)

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

Stop(Boolean)

Beendet die AudioQueue.

TranslateTime(AudioTimeStamp)

Basisklasse für Eingabe- und Ausgabeaudiowarteschlangen.

Gilt für:

Weitere Informationen