【问题标题】:In iOS Core Audio - what's the best way of looking up OSStatus errors ( ie -43?)在 iOS Core Audio 中 - 查找 OSStatus 错误的最佳方法是什么(即 -43?)
【发布时间】:2012-12-02 20:27:40
【问题描述】:

在 Core Audio 中查找 OSStatus 错误(即 -43 )含义的最佳方法是什么?有没有办法在你的 iOS 代码中处理它们,以便它们可以被格式化以在控制台中显示一个简短的解释?

【问题讨论】:

  • 看到了 - 在你知道这是一个未找到文件的错误之后,有很多关于该怎么做的东西,不知道如何查找它。
  • 这个问题不是另一个问题的重复,查找错误代码对于核心音频开发人员来说是一个持续的痛苦。

标签: ios core-audio runtime-error


【解决方案1】:

快速浏览后,目前最好的方法似乎是使用 Unix 命令行工具 - macerror - 并输入错误代码作为参数:不确定是否可以调用并获取结果将我在 iOS 中的 Obj-C 代码中的 macerror 查询打印到控制台中。

【讨论】:

  • 嗯,虽然了解“macerror”很有趣,但我得到的大多数与 AudioUnit 相关的错误都显示为“未知错误”,这并不是很有帮助。例如。 -10877、-10861、-10860、2755。
  • 废话,我找不到用于列出这些东西的原始页面......我将把它分开并在下面列出。
  • 核心 MIDI 错误 kMIDIInvalidClient = -10830,kMIDIInvalidPort = -10831,kMIDIWrongEndpointType = -10832,kMIDINoConnection = -10833,kMIDIUnknownEndpoint = -10834,kMIDIUnknownProperty = -10835,kMIDIWrongPropertyType = -10836,kMIDINoCurrentSet , kMIDIMessageSendErr = -10838, kMIDIServerStartErr = -10839, kMIDISetupFormatErr = -10840, kMIDIWrongThread = -10841, kMIDIObjectNotFound = -10842, kMIDIIDNotUnique = -10843
  • 工具箱kAudioToolboxErr_InvalidSequenceType = -10846,kAudioToolboxErr_TrackIndexError = -10859,kAudioToolboxErr_TrackNotFound = -10858,kAudioToolboxErr_EndOfTrack = -10857,kAudioToolboxErr_StartOfTrack = -10856,kAudioToolboxErr_IllegalTrackDestination = -10855,kAudioToolboxErr_NoSequence = -10854,kAudioToolboxErr_InvalidEventType = -10853,kAudioToolboxErr_InvalidPlayerState = -10852,这些是骗子 kAudioToolboxErr_CannotDoInCurrentContext = -10863 kAudioUnitErr_CannotDoInCurrentContext = -10863,
  • 音频单元1 kAudioUnitErr_InvalidProperty = -10879,kAudioUnitErr_InvalidParameter = -10878,kAudioUnitErr_InvalidElement = -10877,kAudioUnitErr_NoConnection = -10876,kAudioUnitErr_FailedInitialization = -10875,kAudioUnitErr_TooManyFramesToProcess = -10874,kAudioUnitErr_InvalidFile = -10871,kAudioUnitErr_FormatNotSupported = -10868 , kAudioUnitErr_Uninitialized = -10867, kAudioUnitErr_InvalidScope = -10866,
【解决方案2】:

IOS Dev Weekly 最近的一篇文章链接到一个很棒的网页,该网页允许您搜索所有 OSStatus 代码。 Definitely worth bookmarking.

【讨论】:

    【解决方案3】:

    聚会有点晚了,但我刚刚注意到至少一个错误代码(560226676)实际上是一个四字母代码;它可以在 big-endian 中表示为 '!dat'。搜索会给出 kAudioDeviceUnsupportedFormatError。

    IOW,用这样的小功能打印错误代码不会有什么坏处:

    char *OSTStr( OSType type )
    {
        static union OSTStr {
            uint32_t four;
            char str[5];
        } ltype;
        ltype.four = EndianU32_BtoN(type);
        ltype.str[4] = '\0';
        return ltype.str;
    }
    

    【讨论】:

    • 你是如何解决这个错误的?当我使用 AudioConverterFillComplexBuffer 将 m4a 转换为 lpcm 时,我得到了相同的代码。
    • 此错误表示您正在尝试转换不受支持的格式。快速猜测:只有两种解决方案:找到其他数据进行转换或找到支持您的数据的转换器...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 2016-01-08
    • 1970-01-01
    • 2019-06-07
    • 2011-07-10
    • 1970-01-01
    相关资源
    最近更新 更多