[swift] Swift로 디바이스의 사운드 출력 지원 여부 확인하기

iOS 앱을 개발할 때 때로는 디바이스에서 사운드를 출력할 수 있는지 여부를 확인해야 할 때가 있습니다. Swift에서는 간단하게 이를 확인할 수 있는 방법을 제공합니다. 이번 포스트에서는 Swift를 사용하여 디바이스의 사운드 출력 지원 여부를 확인하는 방법을 알아보겠습니다.

AVAudioSession 활용하기

AVAudioSession은 iOS에서 사운드 관련 작업을 수행하기 위한 클래스입니다. 이를 이용하여 디바이스의 사운드 출력 지원 여부를 확인할 수 있습니다. 아래의 코드를 통해 확인해보겠습니다.

import AVFoundation

func checkAudioOutputAvailability() -> Bool {
    let audioSession = AVAudioSession.sharedInstance()
    
    guard let currentRoute = audioSession.currentRoute.outputs.first else {
        return false
    }
    
    // 사운드 출력 가능한지 여부 확인
    if currentRoute.portType == AVAudioSession.Port.headphones ||
        currentRoute.portType == AVAudioSession.Port.builtInSpeaker {
        return true
    } else {
        return false
    }
}

let audioOutputAvailable = checkAudioOutputAvailability()
print("Audio output available: \(audioOutputAvailable)")

위의 코드에서는 checkAudioOutputAvailability() 함수를 호출하여 디바이스의 사운드 출력 지원 여부를 확인합니다. 함수 안에서는 AVAudioSession 클래스를 사용하여 현재 디바이스의 사운드 출력 라우팅을 확인하고, 이를 통해 사운드 출력 가능 여부를 판단합니다.

결과 확인하기

위의 코드를 실행하면 audioOutputAvailable 변수에 디바이스의 사운드 출력 지원 여부가 저장됩니다. 이 값을 출력하여 확인할 수 있습니다.

Audio output available: true

만약 디바이스가 사운드 출력을 지원하지 않을 경우, audioOutputAvailable 변수의 값은 false가 될 것입니다.

결론

Swift를 사용하여 디바이스의 사운드 출력 지원 여부를 확인하는 방법에 대해 알아보았습니다. AVAudioSession 클래스를 활용하여 사운드 출력 라우팅을 확인하고, 이를 통해 사운드 출력 가능 여부를 판단할 수 있습니다. 현재 디바이스에서 사운드 출력을 지원하는지 확인해야 하는 경우, 위의 코드를 활용하면 간편하게 확인할 수 있습니다.

참고 자료