【问题标题】:iOS background audio linker erroriOS后台音频链接器错误
【发布时间】:2013-03-05 02:22:57
【问题描述】:

错误;

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.3How do I get my AVPlayer to play while app is in background?

最后是我的清单:

问题是什么?在我的 appdelegate 标题中:

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

@interface AppDelegate : UIResponder <UIApplicationDelegate, AVAudioPlayerDelegate> {

}

似乎所有东西都是进口的。我做错了什么?

【问题讨论】:

  • 您是否在应用程序中包含了 AudioToolbox?,如果是,则一次删除并再次通过右键单击框架 -> 添加 -> 现有框架将 AudioToolbox 和 AVFoundation 框架添加到您的项目中
  • 哇,这很奇怪......它在左侧显示了框架,但它不在我的构建阶段。现在建造!谢谢!
  • 它仍然不会在后台播放音频,至少在模拟器上是这样
  • 用于播放音频,您使用的是哪个代码?
  • 我的意思是你可以发布代码吗?

标签: iphone ios objective-c avplayer


【解决方案1】:

这就是我让它在后台播放音频的方法:

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

这也修复了上述错误:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    相关资源
    最近更新 更多