我是iPhone-Development的新手。
我想在点击UIButton时播放声音。我尝试了以下方法:
ViewController.h:
@interface JahrenzeitenViewController : UIViewController <AVAudioPlayerDelegate> {
UIButton *button_PlaySound;
AVAudioPlayer *audioPlayer;
}
@property (nonatomic, retain) IBOutlet UIButton *button_PlaySound;
ViewController.m
- (IBAction)playSound {
//[audioPlayer release];
//audioPlayer = nil;
NSString *audioFilePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"wav"];
NSURL *audioFileURL = [NSURL fileURLWithPath:audioFilePath];
NSError *error = nil;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileURL error:&error];
[audioPlayer setDelegate:self];
[audioPlayer prepareToPlay];
[audioPlayer play];
if (audioPlayer == nil)
NSLog(@"Error playing sound. %@", [error description]);
else
[audioPlayer play];
如果我尝试运行App,则会收到以下错误:
架构i386的未定义符号: “_OBJC_CLASS _ $ _ AVAudioPlayer”,引自: JahrenzeitenViewController.o中的objc-class-ref ld:找不到架构i386的符号 collect2:ld返回1退出状态
我也尝试更改Line
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioFileURL error:&error];
到
audioPlayer = [audioPlayer initWithContentsOfURL:audioFileURL error:&error];
然后我没有得到上面的错误,但它仍然没有播放,我在“playSound”中从我的NSLog获取DebugMessage -Method:
播放声音时出错。 (NULL)
我希望你能帮助我。提前谢谢你:)
答案 0 :(得分:30)
您需要将AVFoundation
框架添加到项目中。 (右键单击主目标,然后添加现有框架)。
答案 1 :(得分:6)
添加其他答案。
您应该始终查看类“I.e AVAudioPlayer 的文档。当您打算使用它时,您不熟悉。在类的文档(类引用)的顶部,是一个表,显示该类所属的框架:
知道了这一点后,将框架添加到项目中。并将其导入标题(.h)文件,正如其他人指出的那样
答案 2 :(得分:4)
我使用了以下说明:
答案 3 :(得分:0)
请将AVFoundation框架添加到您的项目中。我认为您应该添加<AVFoundation/AVFoundation.h>
以及<AudioToolbox/AudioToolbox.h>