AVAudioPlayer在248次后无效

时间:2010-08-03 21:53:50

标签: iphone avaudioplayer

我正在开发一个涉及反复单击按钮的应用程序,我正在为此次点击提供音频反馈,即点击波形文件。

它工作正常,但我有一个问题,在完全248次后,声音不再播放,但应用程序不会崩溃。我收到以下错误:

错误域= NSOSStatusErrorDomain代码= -43“无法完成操作。(NSOSStatusErrorDomain错误-43。)”

这是我正在使用的代码,(相当标准)

//file.h
AVAudioPlayer *audioPlayer;


//file.m
    NSString *path=[[NSBundle mainBundle] pathForResource:@"click" ofType:@"wav"];

        [audioPlayer stop]; //I added this in one of my trials to solve it.
        audioPlayer= [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path]  error:&err];
        audioPlayer.numberOfLoops=0;
        audioPlayer.delegate=self;
           [audioPlayer prepareToPlay];



        if (audioPlayer==nil)
            NSLog(@"%@, %@",path,[err description]);
        else
        [audioPlayer play];

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:4)

我只见过与流式音频相关的错误消息。 NSURL或......

可能会发生奇怪的事情

您的代码的其他问题:您什么时候发布audioPlayer对象?如果你不是,那么你将分配大量的对象,而不是从内存中释放它们。这最终可能会导致内存消息不足。

另一个问题:Apple recommends使用IMA4编码的* .caf文件一次播放多个声音

最后,我发布了另一个问题的示例项目,该问题可能会更好地展示AVAudioPlayer ... ...查看此帖子what is the best way to play sound quickly upon fast button presses xcode?