AVAudioPlayerdelegate

时间:2010-08-01 20:31:07

标签: objective-c xcode interface-builder

我收到此代码的错误 -

警告:类'BeatMaker'未实现'AVAudioPlayerDelegate'协议

-(IBAction)playBeat3 {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"beat3" ofType:@"mp3"];
    AVAudioPlayer* theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
    theAudio.delegate = self;
    [theAudio play];                         
}

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:7)

您告诉AVAudioPlayer实例,您的BeatMaker类使用以下行实现AVAudioPlayerDelegate协议:

theAudio.delegate = self;

但显然你的BeatMaker类没有告诉编译器它实际上是一个AVAudioPlayerDelegate。您可以在头文件中执行此操作:

@interface BeatMaker : NSObject <AVAudioPlayerDelegate> { ... }

然后,您必须确保已在BeatMaker类中实现了AVAudioPlayerDelegate协议的所有必需功能。

在这种情况下,协议没有必需的功能,所以如果您只是复制代码并且实际上并不想从音频接收消息,则可以删除将self分配给音频的delegate属性的行。