这个 Swift 包是一个类型化的容器,用于存储 AUv3 的 fullState 属性中的值,该属性是 AUAudioUnit 实体的一部分。这个属性由 Apple 定义为一个字典,其中包含 String
类型的键和 Any
类型的值。相比之下,TypeFullState 字典是一个字典,其中包含 String
类型的键和 TypedAny
类型的值,而 TypedAny
是一个支持的类型的枚举。
这是一个简单的示例,演示了如何从 AUAudioUnit.fullState
值([String:Any]
)转换为类型化表示,转换为/从 JSON 转换,并最终使用从类型化表示派生的值设置相同的属性
let state = sampler.auAudioUnit.fullState!
let typedState = try! state.asTypedAny()
let encoded = try! JSONEncoder().encode(typedState)
...
let decoded = try! JSONDecoder().decode(TypedFullState.self, from: encoded)
let fullState = FullState.make(from: decoded)!
sampler.auAudioUnit.fullState = fullState
如果类型出现任何问题,代码将抛出 TypedAnyError.invalidType 异常。
目前支持的类型值包括:
Array
([TypedAny]
)Bool
Data
Date
Dictionary
([String: TypedAny]
)Double
Float
(AUValue
)Int
String
UUID