- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"1"
                                                         ofType:@"mp3"];

    // Convert the file path to a URL.
    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:filePath];
    [[AVAudioSession sharedInstance] setDelegate: self];


    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
    AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

    //Initialize the AVAudioPlayer.
    self.audioPlayer = [[AVAudioPlayer alloc]
                        initWithContentsOfURL:fileURL error:nil];
    self.audioPlayer.volume = 1.0;

    // Preloads the buffer and prepares the audio for playing.
    [self.audioPlayer prepareToPlay];



}

它报告运行时错误:
Undefined symbols for architecture armv7:
  "_AudioSessionSetProperty", referenced from:
      -[SoundTesterViewController viewDidLoad] in SoundTesterViewController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

最佳答案

确保在 xCode 中包含 AudioToolbox 库。我有同样的错误,因为文件被导入但没有将库链接到项目。

这应该可以消除您的错误。

祝你今天过得愉快!

关于objective-c - 在 iOS 5 中,如何使用 AudioSession 确保在插入耳机的情况下通过扬声器播放音频?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9963011/

10-09 04:29