我正在制作一个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。
答案 0 :(得分:0)
等待音频通过代理完成以释放音频。我相信如果您搜索网站上有很多与此类似的帖子,他们将拥有特定的代理代码。
答案 1 :(得分:0)
这只是因为你使用局部变量。所以音频将立即发布。 您应该将其定义为类成员并在此处进行分配。所以当这个功能完成时,它仍然可以工作。