我正在制作一个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)代码。