swift - AudioUnit GetPropertyInfo 总是返回 -50 作为错误

标签 swift

我试图弄清楚如何从音频单元中获取 channel 映射信息,但即使在 AudioUnitGetPropertyInfo 中我也遇到了错误 -50 (kAudio_ParamError)。

我正在使用 Swift,但无法正常工作。

已经处理过这个问题的人有什么想法吗?

func CreateAUGraph(inout player: AUGraphPlayer) {
    CheckError(NewAUGraph(&player.graph), operation: "Couldn't create new AuGraph...")

    //output component description
    var outputcd = AudioComponentDescription()
    outputcd.componentType = kAudioUnitType_Output
    outputcd.componentSubType = kAudioUnitSubType_DefaultOutput
    outputcd.componentManufacturer = kAudioUnitManufacturer_Apple

    var outputNode = AUNode()
    CheckError(AUGraphAddNode(player.graph, &outputcd, &outputNode),
        operation: "AUGraphAddNode[kAudioUnitSubType_DefaultOutput] failed")

    AUGraphNodeInfo(player.graph, outputNode, nil, &player.outputAU)

    var dataSize = UInt32()
    CheckError(
        AudioUnitGetPropertyInfo(player.outputAU, kAudioOutputUnitProperty_ChannelMap, kAudioUnitScope_Output, 0, &dataSize, nil)
        , operation: "Cannot get size of ch map")

最佳答案

AUGraph 尚未打开,因此 AudioUnitGetPropertyInfo 无法连接到 player.outputAU 对象,因为它尚不存在。

解决这个问题

CheckError(AUGraphOpen(player.graph), operation: "AUGraphOpen failed") 

之后
CheckError(NewAUGraph(&player.graph), operation: "Couldn't create new AuGraph...")

关于swift - AudioUnit GetPropertyInfo 总是返回 -50 作为错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34190863/

相关文章:

macos - 在 Swift 中使用 VLCKit

swift - 我的应用程序上的键盘问题

macos - OSX 10.10 WKWebView 设置 UserAgent (Swift)

ios - Swift 自定义 UIAlertView

ios - 将 Parse 添加到 IOS 框架会导致问题吗?

ios - 使 UIPinchGestureRecognizer 在 imageview 之外工作,就像 Instagram 故事中的贴纸一样

ios - 使用 Metal 在 iOS 中扭曲 View

swift - 使用 IBOutlet 作为 UIView 时,如何在初始化期间引用 self?

ios - NsMutable 不是 swift 中 [anyobject] 的子类型

arrays - 为什么 Array<Any>.flatMap() 将转换闭包参数包装在可选中?