5

我希望能够使用 c4 循环样本的某些部分。我还想在循环之间跳过而不等待当前循环结束。因此,例如,如果我有最后一个小节循环并且我已经完成了一半并且我想跳到第一个小节,它会这样做而无需等待最后一个小节结束。

我正在使用“currentTime”和“touchesBegan”来尝试设置它,但我无法让它像我想要的那样工作。我正在阅读有关堆栈溢出的信息,看起来我应该使用 NSTimer?或某种回调或什么?我怎样才能做到这一点?

这是我所拥有的:

@implementation C4WorkSpace {
        C4Sample *audioSample;
    }

    -(void)setup {
        audioSample = [C4Sample sampleNamed:@"C4Loop.aif"];
        [audioSample play];
    }

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        audioSample.currentTime = 1.0f;
       //NSTimer? wait some time and then ?
       //callback? I don't know how to do that, but is that what I would do here?
    }
@end
4

1 回答 1

1

C4Sample 类现在没有任何循环能力。如果你想这样做,你必须自己构建循环机制。在我关于使用 NSTimer 的第一个问题的顶部会非常简单。

你可以:

  1. 设置循环开始时间
  2. 设置循环持续时间
  3. 触发循环开始播放并启动计时器

...然后计时器触发一个方法,该方法的设置audioSample.currentTime = loopStartTimer;类似于您在方法中执行此操作的touchesBegan:方式。

于 2012-05-05T01:02:51.833 回答