增加换肤功能
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// CallingVibrator.swift
|
||||
// TUICallKit-Swift
|
||||
//
|
||||
// Created by iveshe on 2024/12/31.
|
||||
//
|
||||
|
||||
import AudioToolbox
|
||||
import TUICallEngine
|
||||
|
||||
class CallingVibratorFeature: NSObject {
|
||||
private static var isVibrating = false;
|
||||
let selfUserCallStatusObserver = Observer()
|
||||
|
||||
override init() {
|
||||
super.init()
|
||||
registerObserveState()
|
||||
}
|
||||
|
||||
deinit {
|
||||
TUICallState.instance.selfUser.value.callStatus.removeObserver(selfUserCallStatusObserver)
|
||||
}
|
||||
|
||||
func registerObserveState() {
|
||||
TUICallState.instance.selfUser.value.callStatus.addObserver(selfUserCallStatusObserver, closure: { newValue, _ in
|
||||
let callStatus = TUICallState.instance.selfUser.value.callStatus.value
|
||||
let callRole = TUICallState.instance.selfUser.value.callRole.value
|
||||
|
||||
if callStatus == TUICallStatus.waiting && callRole == TUICallRole.called {
|
||||
CallingVibratorFeature.startVibration()
|
||||
} else {
|
||||
CallingVibratorFeature.stopVibration()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
static func startVibration() {
|
||||
isVibrating = true
|
||||
vibrate()
|
||||
}
|
||||
|
||||
private static func vibrate() {
|
||||
guard isVibrating else { return }
|
||||
|
||||
AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
|
||||
|
||||
DispatchQueue.global().asyncAfter(deadline: .now() + 1) {
|
||||
vibrate()
|
||||
}
|
||||
}
|
||||
|
||||
static func stopVibration() {
|
||||
isVibrating = false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user