1

错误;

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=0并且此应用程序是在 ios 5.0 下开发并运行良好,但在 ios 4.3 下崩溃以及如何让我的 AVPlayer 在应用程序运行时播放在后台?

最后是我的清单:

在此处输入图像描述 问题是什么?在我的 appdelegate 标题中:

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

@interface AppDelegate : UIResponder <UIApplicationDelegate, AVAudioPlayerDelegate> {

}

似乎一切都是进口的。我做错了什么?

4

1 回答 1

2

这就是我如何让它在后台播放音频:

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

这也修复了上述错误:

通过右键单击框架 -> 添加 -> 现有框架,将 AudioToolbox 和 AVFoundation 框架添加到您的项目中

于 2013-03-16T11:52:52.033 回答