我正在使用AVAudioFoundation。在iOS 5.0 Simulator和iOS 5.1设备上遇到了一些问题。该应用在iOS 4.1的设备和模拟器上运行良好。AVAudioFoundation升级到iOS 5.0
启动时出现加载错误。他们继续下去,就像这样:
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,而不是购买狮和升级的Xcode到4.3。但是再一次,这个问题也出现在设备上,所以它似乎不是Xcode的问题。
在this question他们说这只是“噪音”。但是,这仍然是问题吗?
然后当拨打
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
。
我没有在这里得到什么?这感觉就像我需要在某个地方做一些参考,但我不知道在哪里。
这有助于为iOS 5.0,但打破它的iOS 4.1。 – JOG 2012-04-25 05:35:07
它是如何打破的?该方法需要一个键数组,而不是一个包含键数组的数组。如果它不适用于4.1,那么肯定还有其他一些问题。 – warrenm 2012-04-25 15:50:59