0

我有一个问题,我在菜单 > 一级有声音。但是,当我退出一级并返回菜单时,声音不会停止!

我需要什么代码来终止声音?

这是我正在使用的代码:

- (IBAction) playsound {
NSString *path = [[NSBundle mainBundle] pathForResource:@"imsound" ofType:@"wav"];    
AVAudioPlayer* myAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];    
myAudio.delegate = self;    
myAudio.volume = 1.0;    
myAudio.numberOfLoops = -1;    
[myAudio play];
}
4

1 回答 1

1

正如文档所述,-1 将导致它重复播放,直到您向它发送 -stop。所以问题变成了“我什么时候应该告诉它停止”。当你回去时这样做(如果它正在播放)可能是一个好主意。

因为你没有对播放器的引用(你一离开 -playSound: 方法就会泄漏它,你没有办法告诉它闭嘴。你应该让它成为一个实例变量/属性,这样你可以在需要时随时使用它。您实际上是在按下播放键,然后将播放器扔到某人的卡车后部,然后想要它回来,这样您就可以将其关闭。应该系上一根绳子。;-)

正确的内存管理技术和实例变量的使用是您当前困境的关键原因。

于 2010-10-04T23:38:29.160 回答