改变numberWithInt
呼入numberWithFloat
,并更改强度,使其介于 0 和 1 之间。当他们使用int
而不是一个float
.
编辑:这是一个复制/粘贴,应该适用于您的代码来调用自定义振动:
#pragma mark - Custom vibration methods
-(void)invokeCustomVibrationWithStartStopTimes:(NSArray*)startStopTimes andIntensity:(float)intensity {
BOOL startOrStop = YES;
NSMutableArray* arr = [@[] mutableCopy];
double time = 0;
for (NSNumber *x in stopStartTimes) {
[arr addObject:x]
startOrStop = !startOrStop;
[arr addObject:@(startOrStop)];
time = [x doubleValue] / 1000.0;
}
AudioServicesPlaySystemSoundWithVibration(4095,nil,{@"VibePattern":arr,@"Intensity":@(intensity)})
[self performSelector:@selector(stop) withObject:nil afterDelay:time];
}
-(void)stop {
AudioServicesStopSystemSound(4095); // stop buzzing the phone
}
For startStopTimes
,它应该在开始时间和停止时间之间交替。传入这个数组:
@[@(2000), @(1000), @(1000), @(500)]
将执行示例代码所做的操作。在这种情况下,它将启动 2000 毫秒,停止 1000 毫秒,启动 1000 毫秒,停止 500 毫秒。
stop
被称为停止声音。按照我的设置方式,它会在发送的总时间后停止声音。
您可能已经注意到我一直在使用数组/数字文字而不是使用[NSArray arrayWithObjects: ... , nil];
or [NSNumber numberWith...];
。这使得你的代码变得更短。另外,我用一个标记开头#pragma mark
。用它来更好地组织它。希望能帮助到你!