macOS 오디오 장치, 이제 우선순위로 관리하세요!
by DD
5개월 전
조회수 22
macOS 메뉴바에서 오디오 장치 우선순위를 관리하는 앱, AudioPriorityBar
연결된 장치 중 최우선순위 장치로 자동 전환 기능 제공
SwiftUI와 CoreAudio를 사용하여 개발, 사용자 편의성 증대
CoreAudio를 활용한 장치 감지
CoreAudio를 사용하여 연결된 오디오 장치를 실시간으로 감지한다. 따라서 장치 연결/해제 시 자동 전환 기능을 구현한다. 구체적으로, Device Discovery를 통해 장치 목록을 갱신하고, UserDefaults에 우선순위를 저장한다.
SwiftUI 기반 UI 구성
SwiftUI를 사용하여 사용자 인터페이스를 구축하여, 간결하고 직관적인 UI를 제공한다. DeviceListView와 MenuBarView 컴포넌트를 통해 메뉴바 및 장치 목록을 구현한다. 반면, CoreAudio와의 연동을 위해 AudioDeviceService를 별도로 구성하여, UI와 로직 분리를 달성했다.
우선순위 관리 및 저장 방식
장치 우선순위는 UserDefaults에 장치 UID를 키로 저장하여, 장치 재연결 시에도 우선순위를 유지한다. 따라서 사용자는 자신만의 설정을 유지할 수 있다. PriorityManager를 통해 우선순위 관리 로직을 캡슐화하여, 코드의 유지보수성을 높였다.