다음을 통해 공유


AudioQueue 클래스

정의

입력 및 출력 오디오 큐의 기본 클래스입니다.

public abstract class AudioQueue : IDisposable
type AudioQueue = class
    interface IDisposable
상속
AudioQueue
파생
구현

설명

AudioQueues를 사용하여 시스템 입력 디바이스의 오디오를 스트림으로 녹음하고 오디오를 재생할 수 있습니다. 오디오를 다시 재생하고 오디오 하드웨어와 직접 상호 작용하고 적절한 경우 하드웨어를 디코딩할 때 압축된 오디오를 녹음하거나 디코딩할 때 오디오를 인코딩해야 합니다.

AudioQueue는 오디오를 녹음하는 데 사용되고 오디오 OutputAudioQueue 를 재생하는 데 사용되는 의 InputAudioQueue 기본 클래스입니다. 이 클래스는 볼륨 제어, 리소스 관리 및 이벤트 알림뿐만 아니라 큐를 시작, 소수, 중지, 일시 중지하는 서비스를 제공합니다.

AudioQueues를 사용하는 경우 재생 또는 녹음을 위해 버퍼를 할당해야 합니다. 메서드 또는 AllocateBufferWithPacketDescriptors(Int32, Int32, IntPtr)AllocateBuffer(Int32, AudioQueueBuffer*) 사용하여 할당하고 를 FreeBuffer(IntPtr) 사용하여 해제합니다. 기본 하드웨어가 오디오를 재생하거나 녹음하는 데 사용할 수 있는 버퍼 컬렉션을 유지합니다. 버퍼가 사용되면 알림 콜백이 호출됩니다. OutputAudioQueue의 경우 버퍼가 완전히 재생되었을 때 알림을 받도록 OutputCompleted 이벤트에 연결하고 InputAudioQueue에서 InputCompleted 이벤트를 사용하여 기록이 버퍼를 완전히 활용했을 때 알림을 받습니다.

달리 지정하지 않는 한 채워진 오디오 버퍼를 처리하거나 오디오 버퍼를 채우기 위한 콜백이 AudioQueue 스레드에서 호출됩니다. 큐에서 이벤트를 처리하는 데 사용할 CFRunLoop 인스턴스를 제공하여 이를 변경할 수 있습니다.

입력 또는 출력 큐를 처리할 때 큐에서 발생하는 몇 가지 속성 변경 내용을 수신 대기할 수 있습니다(수신 대기할 수 있는 이벤트 목록은 E:AudioToolBox.AudioQueueProperty 참조). 이렇게 하려면 메서드를 AddListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged) 사용하여 수신기를 추가하고 메서드를 RemoveListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged) 사용하여 수신기를 제거합니다.

StreamingAudio를 참조하여 AudioBuffers를 사용하는 방법을 확인할 수 있습니다.

다양한 AudioQueue 속성은 상위 수준 C# 속성으로 노출됩니다. 상위 수준 속성 외에도 Apple이 이전에 바인딩되지 않은 새 속성을 도입하거나 세분화된 컨트롤이 필요한 경우 AudioQueue 속성 시스템에 대한 하위 수준 인터페이스가 노출됩니다. 하위 수준 인터페이스는 GetProperty 및 SetProperty 메서드 패밀리에서 제공됩니다.

필드

gch

입력 및 출력 오디오 큐의 기본 클래스입니다.

handle

입력 및 출력 오디오 큐의 기본 클래스입니다.

속성

AudioStreamDescription

입력 및 출력 오디오 큐의 기본 클래스입니다.

AudioStreamPacketDescription
사용되지 않음.

오디오 큐의 AudioStreamBasicDescription입니다.

ChannelLayout

오디오 큐 채널 레이아웃입니다.

ConverterError

오디오 큐의 인코딩 또는 디코딩 프로세스에서 생성된 가장 최근의 오류를 포함합니다.

CurrentDevice

이 오디오 큐와 연결된 디바이스의 고유 식별자입니다.

CurrentLevelMeter

현재 수준 미터- 범위 0(최소)에서 1(최댓값)의 채널당 1개입니다.

CurrentLevelMeterDB

현재 수준 미터, 채널당 1개(데시벨)

CurrentTime

하드웨어 디바이스의 현재 시간을 반환합니다.

DecodeBufferSizeFrames

입력 및 출력 오디오 큐의 기본 클래스입니다.

DeviceChannels

입력 및 출력 오디오 큐의 기본 클래스입니다.

EnableLevelMetering

오디오 큐에서 수준 계량 기능을 사용하도록 설정합니다.

Handle

관리되지 않는 개체 표현에 대한 핸들(포인터)입니다.

HardwareCodecPolicy

입력 및 출력 오디오 큐의 기본 클래스입니다.

IsRunning

입력 및 출력 오디오 큐의 기본 클래스입니다.

MagicCookie

특정 형식에 필요한 오디오 메타데이터입니다.

MaximumOutputPacketSize

입력 및 출력 오디오 큐의 기본 클래스입니다.

Pan

입력 및 출력 오디오 큐의 기본 클래스입니다.

SampleRate

입력 및 출력 오디오 큐의 기본 클래스입니다.

Volume

볼륨

VolumeRampTime

입력 및 출력 오디오 큐의 기본 클래스입니다.

메서드

AddListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged)

이 메서드를 사용하여 오디오 큐 속성의 변경 내용을 추적합니다.

AllocateBuffer(Int32, AudioQueueBuffer*)

이 AudioQueue와 연결된 오디오 버퍼를 할당합니다.

AllocateBuffer(Int32, IntPtr)

고정 비트 전송률 버퍼에 사용되는 이 AudioQueue와 연결된 오디오 버퍼를 할당합니다.

AllocateBufferWithPacketDescriptors(Int32, Int32, IntPtr)

가변 비트 속도 버퍼에 오디오 큐 개체를 할당합니다.

CreateProcessingTap(AudioQueueProcessingTapDelegate, AudioQueueProcessingTapFlags, AudioQueueStatus)

AudioQueue에서 처리 탭을 만듭니다.

CreateTimeline()

오디오 큐의 오디오에서 불연속성을 추적하는 데 사용할 수 있는 타임라인 개체를 만듭니다.

Dispose()

AudioQueue 개체에서 사용하는 리소스를 해제합니다.

Dispose(Boolean)

AudioQueue 개체에서 사용하는 리소스를 해제합니다.

EnqueueBuffer(AudioQueueBuffer*, AudioStreamPacketDescription[])

오디오 큐의 버퍼 큐에 버퍼를 추가합니다.

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

가능한 한 빨리 재생해야 하는 버퍼를 재생 오디오 큐의 버퍼 큐에 추가합니다.

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

재생 오디오 큐의 버퍼 큐에 버퍼를 추가하여 시작 시간과 매개 변수를 지정합니다.

EnqueueBuffer(IntPtr, AudioStreamPacketDescription[])

입력 및 출력 오디오 큐의 기본 클래스입니다.

EnqueueBuffer(IntPtr, Int32, AudioStreamPacketDescription[])

오디오 큐의 버퍼 큐에 버퍼를 추가합니다.

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

가능한 한 빨리 재생해야 하는 버퍼를 재생 오디오 큐의 버퍼 큐에 추가합니다.

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

재생 오디오 큐의 버퍼 큐에 버퍼를 추가하여 시작 시간과 매개 변수를 지정합니다.

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

지정된 오프셋의 source+sourceOffset이 가리키는 위치에 포함된 원시 오디오 데이터를 AudioQueueBuffer에 복사합니다.

Finalize()

AudioQueue 개체의 종료자

Flush()

입력 및 출력 오디오 큐의 기본 클래스입니다.

FreeBuffer(IntPtr)

AudioQueue 버퍼를 해제합니다.

GetCurrentTime(AudioQueueTimeline, AudioTimeStamp, Boolean)

오디오 큐의 현재 시간을 반환합니다.

GetNearestStartTime(AudioTimeStamp)

입력 및 출력 오디오 큐의 기본 클래스입니다.

GetProperty(AudioQueueProperty, Int32)

AudioQueue 속성을 가져오는 하위 수준 API입니다.

GetProperty(AudioQueueProperty, Int32, IntPtr)

AudioQueue 속성을 가져오는 하위 수준 API입니다.

GetProperty<T>(AudioQueueProperty)

AudioQueue 속성을 가져오는 하위 수준 API입니다.

Pause()

입력 및 출력 오디오 큐의 기본 클래스입니다.

Prime(Int32, Int32)

재생하도록 오디오 버퍼를 준비하고 오디오 하드웨어에서 재생할 수 있는 데이터가 있는지 확인하는 데 사용됩니다.

QueueDispose()

입력 및 출력 오디오 큐의 기본 클래스입니다.

RemoveListener(AudioQueueProperty, AudioQueue+AudioQueuePropertyChanged)

입력 및 출력 오디오 큐의 기본 클래스입니다.

Reset()

입력 및 출력 오디오 큐의 기본 클래스입니다.

SetChannelAssignments(AudioQueueChannelAssignment[])

입력 및 출력 오디오 큐의 기본 클래스입니다.

SetProperty(AudioQueueProperty, Int32, IntPtr)

입력 및 출력 오디오 큐의 기본 클래스입니다.

Start()

오디오 큐를 시작합니다.

Start(AudioTimeStamp)

입력 및 출력 오디오 큐의 기본 클래스입니다.

Stop(Boolean)

AudioQueue를 중지합니다.

TranslateTime(AudioTimeStamp)

입력 및 출력 오디오 큐의 기본 클래스입니다.

적용 대상

추가 정보