AudioQueue Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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. |