我正在制作一个soundboard应用程序,并使用以下代码播放mp3文件:

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

当我包含[theAudio release];时,声音不会播放。如果我将其取出,则可以播放,但我不想出现内存泄漏。我怎样才能解决这个问题?

如果您可以包括我需要添加的任何代码,这将非常有帮助。我是编程新手(除了我在学校使用过的TrueBasic之外),所以我对Objective-C不熟悉。

最佳答案

等待直到音频通过委托(delegate)完成以释放音频。我相信,如果您进行搜索,该站点上会有很多与此类似的帖子,它们将具有特定的委托(delegate)代码。

10-06 09:00