AudioQueue 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
입력 및 출력 오디오 큐의 기본 클래스입니다.
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 |
입력 및 출력 오디오 큐의 기본 클래스입니다. |