     #if os(macOS)
     /// Enumerate the list of available devices.
     public static var devices: [AKDevice]? {
-        EZAudioUtilities.setShouldExitOnCheckResultFail(false)
-        return EZAudioDevice.devices().compactMap {
-            guard let device = $0 as? EZAudioDevice else { return nil }
-            return AKDevice(ezAudioDevice: device)
+        return GetAudioDevices().map { id in
+            return AKDevice(deviceID: id)
         }
     }
     #endif

    /// Enumerate the list of available input devices.
    public static var inputDevices: [AKDevice]? {
        #if os(macOS)
        EZAudioUtilities.setShouldExitOnCheckResultFail(false)

        return EZAudioDevice.inputDevices().compactMap {
            guard let device = $0 as? EZAudioDevice else { return nil }
            return AKDevice(ezAudioDevice: device)
        }
        #else
        var returnDevices = [AKDevice]()

    /// Enumerate the list of available output devices.
    public static var outputDevices: [AKDevice]? {
        #if os(macOS)
        return GetAudioDevices().compactMap { (id: AudioDeviceID) -> AKDevice? in
            if AudioDeviceOutputChannels(id) > 0 {
                return AKDevice(deviceID: id)
            }
            return nil
        }
        #else
        let devs = AVAudioSession.sharedInstance().currentRoute.outputs
