AVAudioPlayer,很多声音
问题描述:
在我的应用程序中,我使用AVAudioPlayer播放一些mp3。我的代码是:AVAudioPlayer,很多声音
- (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?
当我的声音改变我称之为“玩”的方法,但这种方法的alloc一个新的AVAudioPlayer每次
我知道
- (void) audioPlayerDidFinishPlaying: (AVAudioPlayer *) player
successfully: (BOOL) flag {
,但我不明白如何释放此委托在我的声音ID方法,因为如果我释放内soundId我的应用程序崩溃 “的shm_open失败:‘过了几分钟,我用我的应用我有崩溃此消息后,苹果音频队列’
请帮我...谢谢
答
你不想在你的委托方法中释放soundID
。你想发布player
。从你的代码来看,soundID
是一个伊娃。代表被调用时,soundID
可能已被设置为另一个值。但player
参数将是刚刚完成播放的AVAudioPlayer
。
您是否在等待每个声音完成调用委托方法的位置,还是您手动更改它们? – sooper 2012-04-23 23:46:33