【问题标题】:AVAudioFoundation upgrade to iOS 5.0AVAudioFoundation 升级到 iOS 5.0
【发布时间】:2012-05-05 07:55:47
【问题描述】:

我正在使用 AVAudioFoundation。在 iOS 5.0 模拟器和 iOS 5.1 设备上遇到了一些问题。该应用在 iOS 4.1 的设备和模拟器上运行良好。

  1. 启动时出现加载错误。他们继续,就像这样:

    Error loading /System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn: dlopen(/System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn, 262): Symbol not found: _CFXMLNodeGetInfoPtr Referenced from: /System/Library/Frameworks/Security.framework/Versions/A/Security Expected in: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation in /System/Library/Frameworks/Security.framework/Versions/A/Security

    我认为这与我在 Snow Leopard 上运行 Xcode 4.2 并且只下载 iOS 5.0 sdk 而不是购买 Lion 并将 Xcode 升级到 4.3 有关。但是话又说回来,问题也出现在设备上,所以它似乎不是 Xcode 的问题。

    this question 他们说这只是“噪音”。但这仍然是问题吗?

  2. 然后在调用AVURLAsset loadValuesAsynchronouslyForKeys: completionHandler: 时,AVKeyValueStatus0,而不是预期的AVKeyValueStatusLoaded

这是我使用的代码:

NSArray *keys = [NSArray arrayWithObject:[NSArray arrayWithObjects:@"duration", @"tracks", nil]];
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:tempRecFileURL options:nil];

[asset loadValuesAsynchronouslyForKeys:keys completionHandler: ^{

    NSError *error = nil;
    AVKeyValueStatus tracksStatus = [asset statusOfValueForKey:@"tracks" error:&error];
    switch (tracksStatus) {
        case AVKeyValueStatusLoaded:
            // this is where I normally end up doing stuff but not on iOS 5.0
            break;
        case AVKeyValueStatusFailed:
        case AVKeyValueStatusCancelled:
            // doing other stuff here
            break;
    }
}];

这是我得到的输出(仅限 iOS 5.0):

[AVAsset loadValuesAsynchronouslyForKeys:completionHandler:] invoked with unrecognized keys (
        (
        duration,
        tracks
    )
).

errornil

我没有得到什么?感觉好像需要在某个地方做一些参考,但我不知道在哪里。

【问题讨论】:

    标签: ios avaudiorecorder


    【解决方案1】:

    这里的本质问题是行

    NSArray *keys = [NSArray arrayWithObject:[NSArray arrayWithObjects:@"duration", @"tracks", nil]];
    

    应该是

    NSArray *keys = [NSArray arrayWithObjects:@"duration", @"tracks", nil];
    

    【讨论】:

    • 这对 iOS 5.0 有帮助,但对 iOS 4.1 来说就坏了。
    • 它是怎么坏掉的?该方法需要一个键数组,而不是包含键数组的数组。如果它在 4.1 上不起作用,肯定还有其他问题。
    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多