iOS背景音频链接器错误

时间:2013-03-16 10:33:45

标签: iphone ios objective-c avplayer

误差;

undefined symbols for architecture i386:
    "_AudioSessionSetProperty", referenced from:
    -[AppDelegate applicationDidFinishLaunching:] in AppDelegate.o
    ld: symbol(s) not found for architecture i386
        clang: error: linker command failed with exit code 1 (use -v to see invocation)

我正在使用的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    // Set AudioSession
    NSError *sessionError = nil;
    [[AVAudioSession sharedInstance] setDelegate:self];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];

    /* Pick any one of them */
    // 1. Overriding the output audio route
    //UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
    //AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute, sizeof(audioRouteOverride), &audioRouteOverride);

    // 2. Changing the default output audio route
    UInt32 doChangeDefaultRoute = 1;
    AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(doChangeDefaultRoute), &doChangeDefaultRoute);

    [self.window addSubview:rootController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

(来自https://devforums.apple.com/thread/90684?start=0&tstart=0this app was developed and works fine under ios 5.0, but crashes under ios 4.3以及How do I get my AVPlayer to play while app is in background?

最后我的plist:

enter image description here 问题是什么?在我的appdelegate标题中:

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate, AVAudioPlayerDelegate> {

}

似乎一切都是导入的。我做错了什么?

1 个答案:

答案 0 :(得分:2)

这就是我在后台播放音频的方式:

// Allow to play in background
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];

这也解决了上面的错误:

通过Right-Cliking on Frameworks将AudioToolbox和AVFoundation框架添加到您的项目中 - &gt;添加 - &gt;现有框架

相关问题