2015-01-17 6 views
1

현재 AudioUnit 악기를 호스트하는 응용 프로그램의 프로토 타입을 작성하는 코드를 작성 중입니다. 가장 완벽한 API를 사용할 수있는 것처럼 AudioToolbox를 사용하고 있습니다 (AVFoundation은 좋아 보이지만 내 응용 프로그램에서 중요한 MusicSequences 측면에서는 제한적으로 보입니다). 응용 프로그램은 OS X에서만 실행됩니다.AudioUnit의 이름과 제조업체를 문자열로 얻는 방법

내 AudioUnit을 그래프로 설정했는데 출력 결과를들을 수 있습니다. 지금하고 싶은 일은 시스템에 설치된 AudioUnit 악기 목록을 제공하여 악기를 교체 할 수있게하는 것입니다 (현재 AudioComponentFindNext에서 처음 반환 한 것만 사용하고 있습니다). AVFoundation의 AVAudioUnit은 name 및 manufacturerName 속성을 제공하지만 하위 수준 유형으로이 정보에 액세스하는 방법을 볼 수 있습니다. 이 질문에 답할 수있는 사람은 문서가 매우 기본 적이라는 것을 알게 될 것입니다. (헤더에서 물건을 가장 유용하게 사용했습니다.) 필자는 AudioUnit의 매개 변수와 속성을 파고 봤지만 장치 자체에 대한 메타 데이터보다는 장치 매개 변수와 관련이있는 것 같습니다.

+0

그것은 10 년 후에 코어 오디오 문서는 여전히 나쁘다는 슬프다. – sbooth

답변

0

흔히 그렇듯이 게시 한 직후 답변을 발견했습니다. AudioComponentCopyName을 사용하여 콜론으로 구분 된 문자열에 구성 요소 이름과 제조업체 이름을 가져올 수 있습니다. 이것은 (당신은 물론 설치 한 내용에 따라) 이와 같은 출력을 제공 할 것입니다

CFStringRef compName; 
AudioComponentCopyName(currentComponent, &compName); 
NSLog(@"%@", compName); 
CFRelease(compName); 

:

... 
2015-01-17 19:57:19.331 AUTest[3774:1494743] Apple: DLSMusicDevice 
2015-01-17 19:57:19.331 AUTest[3774:1494743] Apple: AUMIDISynth 
2015-01-17 19:57:19.331 AUTest[3774:1494743] Apple: AUSampler 
2015-01-17 19:57:19.333 AUTest[3774:1494743] Arturia: Analog Lab 
...