只是簡單的實(shí)現(xiàn)功能,使用GCD延遲循環(huán)調(diào)用,主要是swift對gcd寫法的改變,可以寫個單例,全局調(diào)用,方法內(nèi)部可以自定義系統(tǒng)聲音等,這就不寫了,只有震動效果,直接上代碼:
//開始持續(xù)震動
func startSystemVibrate() {
AudioServicesAddSystemSoundCompletion(kSystemSoundID_Vibrate, nil, nil, { (sound,_)? in
let additionalTime: DispatchTimeInterval = .seconds(1)
DispatchQueue.main.asyncAfter(deadline: .now() + additionalTime, execute: {
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
})
}, nil);
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
//結(jié)束持續(xù)震動
func stopSystemVibrate() {
AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate);
AudioServicesDisposeSystemSoundID(kSystemSoundID_Vibrate);
}