我想用AVAudioPlayer
在循环中播放声音,就像在节拍器应用中一样,来自ios示例。我有以下代码:
BOOL continuePlaying = YES;
while(continuePlaying){
[_audioPlayer play];
...do some other stuff
}
问题是,在第一次迭代期间,声音只播放一次。在下一次迭代中,play方法似乎没有做任何事情。对于可能出错的任何建议,我将不胜感激。
PS:我知道AVAudiopoayer
有numberOfLoops
属性,但在这种情况下我想在每次播放之间做一些其他的事情,所以我必须使用一个循环(我想创建一个节拍器应用程序)。
答案 0 :(得分:1)
而不是播放while循环,在播放声音时捕捉代表
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
你可以再次开始播放声音并做其他你想做的事情。
在播放声音的情况下循环似乎不合逻辑,因为你正在解雇多个游戏并且不能正常工作,
答案 1 :(得分:0)
检查此代码,它对我有用:
dispatch_async(dispatch_get_global_queue(0, 0), ^{
while (continuePlaying)
{
[player play];
//do your stuffs here
}
});