在我的应用程序中,我使用 AVAudioPlayer 播放一些 mp3。我的代码是:
- (void) play{
NSString *path = [NSString stringWithFormat:@"%@/%@",
[[NSBundle mainBundle] resourcePath],
[arraysound objectAtIndex:appDelegate.indexSound]];
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
soundID = [[AVAudioPlayer alloc] initWithContentsOfURL:filePath error:nil];
soundID.delegate = self;
[soundID prepareToPlay];
[soundID play];
}
但我有 40 种声音要播放;我每次使用 soundID 来播放我的声音
例如我有sound1.mp3、sound2.mp3、sound3.mp3……
如何释放我的 soundId?
当我的声音改变时,我调用“播放”方法,但是这个方法每次都分配一个新的 AVAudioPlayer
我知道
- (void) audioPlayerDidFinishPlaying: (AVAudioPlayer *) player
successfully: (BOOL) flag {
但我不明白如何在这个委托方法中释放我的声音 id,因为如果我在 soundId 中释放我的应用程序在我使用我的应用程序几分钟后崩溃,我就会崩溃这条消息“shm_open failed:”Apple Audio Queue”
请帮助我...谢谢