macOS 오디오 장치, 이제 우선순위로 관리하세요!

by DD
5개월 전
조회수 22

macOS 메뉴바에서 오디오 장치 우선순위를 관리하는 앱, AudioPriorityBar

연결된 장치 중 최우선순위 장치로 자동 전환 기능 제공

SwiftUICoreAudio를 사용하여 개발, 사용자 편의성 증대

CoreAudio를 활용한 장치 감지

CoreAudio를 사용하여 연결된 오디오 장치를 실시간으로 감지한다. 따라서 장치 연결/해제 시 자동 전환 기능을 구현한다. 구체적으로, Device Discovery를 통해 장치 목록을 갱신하고, UserDefaults에 우선순위를 저장한다.

SwiftUI 기반 UI 구성

SwiftUI를 사용하여 사용자 인터페이스를 구축하여, 간결하고 직관적인 UI를 제공한다. DeviceListViewMenuBarView 컴포넌트를 통해 메뉴바 및 장치 목록을 구현한다. 반면, CoreAudio와의 연동을 위해 AudioDeviceService를 별도로 구성하여, UI와 로직 분리를 달성했다.

우선순위 관리 및 저장 방식

장치 우선순위는 UserDefaults에 장치 UID를 키로 저장하여, 장치 재연결 시에도 우선순위를 유지한다. 따라서 사용자는 자신만의 설정을 유지할 수 있다. PriorityManager를 통해 우선순위 관리 로직을 캡슐화하여, 코드의 유지보수성을 높였다.

[AudioPriorityBar] Priority-based audio switching for macOS menu bar