2012-04-24 111 views
0

我正在使用AVAudioFoundation。在iOS 5.0 Simulator和iOS 5.1設備上遇到了一些問題。該應用在iOS 4.1的設備和模擬器上運行良好。AVAudioFoundation升級到iOS 5.0

  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,而不是購買獅和升級的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

我沒有在這裏得到什麼?這感覺就像我需要在某個地方做一些參考,但我不知道在哪裏。

回答

1

這裏的關鍵問題是該行

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

這應該是

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

這有助於爲iOS 5.0,但打破它的iOS 4.1。 – JOG 2012-04-25 05:35:07

+0

它是如何打破的?該方法需要一個鍵數組,而不是一個包含鍵數組的數組。如果它不適用於4.1,那麼肯定還有其他一些問題。 – warrenm 2012-04-25 15:50:59