无法使用AVFoundation AVAudioPlayer构建

时间:2013-12-03 13:42:10

标签: ios iphone avfoundation xcode5

我正在使用使用AVFoundation框架的ios项目。我使用xcode5和ios7。从构建阶段添加框架并导入它并开始构建项目之后。 xcode给了我错误:

ld:警告:忽略文件/Users/ahmadnasser/Desktop/AVFoundation.framework/AVFoundation,缺少文件/Users/ahmadnasser/Desktop/AVFoundation.framework/AVFoundation中需要的架构armv7(2个切片) 架构armv7s的未定义符号:   “_OBJC_CLASS _ $ _ AVAudioPlayer”,引自:       RegistrationViewController.o中的objc-class-ref ld:找不到架构armv7s的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

代码是:

NSURL *soundURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"whistle" ofType:@"mp3"]];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL error:nil];
[audioPlayer setNumberOfLoops:INFINITY];
[audioPlayer prepareToPlay];
[audioPlayer play];

当我只导入并定义一个对象

时,会有一个注释
AVAudioPlayer *audioPlayer;
[audioPlayer setNumberOfLoops:INFINITY];
[audioPlayer prepareToPlay];
[audioPlayer play];

代码编译没有问题。我真的需要帮助

1 个答案:

答案 0 :(得分:0)

添加CoreVideo和CoreMedia框架

您似乎还没有将CFNetwork.framework和Security.framework,AVFoundation框架,SystemConfiguration.framework,MediaPlayer框架添加到您的项目中。在Xcode中的“要链接的库”部分添加它们,一切都应该没问题。

通过将构建设置中的库搜索路径更改为

来解决此问题

./ Classes“$(SRCROOT)/ Classes”

以防万一其他人发现这一点,并想尝试一下。

编辑:只是补充一下,我现在又遇到了同样的问题。它之所以发生这种情况,是因为我更改了.xcodeproj文件所在的文件夹名称。因此,在我的Mac上的一个文件夹中,我有一个名为App Name的目录,名为App Name.xcodeproj的文件。我将目录App Name更改为不同的东西,尽管更新了xcode中的构建设置,仍然遇到了同样的问题。我必须做的是

右键单击App Name.xcodeproj 单击显示包内容 打开project.pbxproj 然后cmd + f(搜索)并输入App Name,我认为只有两个地方,它们是页面下方的1/3,名为name,紧接在下面,path。将它们更改为新目录名称,保存并重新打开项目,一切都应该正常。