0

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

    Lion を購入して Xcode を 4.3 にアップグレードする代わりに、Snow Leopard で Xcode 4.2 を実行していて、iOS 5.0 SDK のみをダウンロードしたことに関係があると思います。しかし、やはり問題はデバイスにも現れるので、Xcode の問題ではないようです。

    この質問では、これは単なる「ノイズ」であると彼らは言います。しかし、これはまだ問題でしょうか?

  2. そして、 を呼び出すとAVURLAsset loadValuesAsynchronouslyForKeys: completionHandler:、期待さAVKeyValueStatusれる0の代わりに です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
    )
).

errorですnil

ここで得られなかったものは何ですか?どこかで参照する必要があるように感じますが、どこにすればよいかわかりません。

4

1 に答える 1

1

ここでの本質的な問題は行です

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

どちらであるべきか

NSArray *keys = [NSArray arrayWithObjects:@"duration", @"tracks", nil];
于 2012-04-24T16:38:51.303 に答える