for 循环中未使用的表达式结果

expression result unused on for loop

我一天中的大部分时间都在研究如何在另一个音频文件播放完毕后播放一个音频文件。

我已经尝试了 audioPlayerDidFinishPlaying,但在播放其他音频文件时它会播放第二个音频文件,但效果有限。所以它在播放任何音频文件时播放,我希望它只在播放某个音频文件时播放。我还发现在某些设备上,音频卡在循环中,因此它处理了在 audioPlayerDidFinishPlaying 中触发播放的文件并再次播放该文件。

不管怎样,它把我折磨了一整天,我崩溃了。

无论如何,我找到了一个解决方案,它完美地满足了我的需求,但我收到警告,说我不知道​​如何解决。

NSArray  *theSoundArray = [NSArray arrayWithObjects:@"dog-00-voice",@"dog-00",nil];

    int totalSoundsInQueue = [theSoundArray count];

    for (int i=0; i < totalSoundsInQueue; i ) {

        NSLog(@"%d", i);

        NSString *sound = [theSoundArray objectAtIndex:i];

        // Wait until the audio player is not playing anything
        while(![arraySounds isPlaying]){

            AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]
                                                                                                         pathForResource:sound ofType:@"mp3"]] error:NULL];
            self.arraySounds = player;
            [arraySounds setVolume:1.0f];
            [arraySounds play];
            i++;
            NSLog(@"%d", i);
        }
    }

这行得通,但我在 for 循环行末尾收到关于 i 的警告。 "表达式结果未使用'.

任何人都可以帮助我解决这个问题或建议我如何让 audioPlayerDidFinishPlaying 如上所述工作。

提前致谢

您只需从那里删除 i 即可:

for (int i=0; i < totalSoundsInQueue; )
{
   ...
}

您也可以通过编写 i = i 来修复它,但这是不必要的,也不推荐这样做。