0

サウンドの配列をロードするメソッドを実装しました。

-(void) soundSuper
{
    [soundEngine stopAllSounds];

    [soundEngine playSound:(1000+tag) sourceGroupId:1 pitch:1 pan:1 gain:1.0f loop:NO];
    NSLog(@"sound1 activated");

    [self schedule:@selector(playSecondSound) interval:2];
}

-(void) playSecondSound {
    [self unschedule:@selector(playSecondSound)];
    [soundEngine playSound:(1008+tag) sourceGroupId:1 pitch:1 pan:1 gain:1.0f loop:NO];
    NSLog(@"sound2 activated");
}

ここでは、サウンドをロードしてから、ボタンに触れると再生されます。2つの音が同時に鳴ります。これで、initSceneにサウンドをロードしたいと思います。私はこの方法でこれを取得しています:

[self schedule:@selector(soundSuper) interval:2];

しかし、問題は、私が入ると、音は再生されますが、それは常にループするということです。ボイドセカンドサウンドメソッドでスケジュールを解除したので、どうしたらよいかわかりません。何か間違えている?

4

1 に答える 1

1

このように、「soundSuper」セレクターのスケジュールも解除する必要があると思いませんか

-(void) soundSuper
{
    //HERE : you unschedule this selector too.
    [self unschedule:@selector(soundSuper)];

    [soundEngine stopAllSounds];

    [soundEngine playSound:(1000+tag) sourceGroupId:1 pitch:1 pan:1 gain:1.0f loop:NO];
    NSLog(@"sound1 activated");

    [self schedule:@selector(playSecondSound) interval:2];
}
于 2013-03-27T17:14:02.020 に答える