Depuis hier, même si je comprends comment écrire des extensions dans Swift, mais maintenant je ne suis pas vraiment sûr. J'ai une extension simple pour la classe CMTimebase.Extension dans Swift avec les types de données CoreMedia
extension CMTimebase {
class func instance(withMasterClock masterClock: CMClock) -> CMTimebase {
var timebase: CMTimebase? = nil
CMTimebaseCreateWithMasterClock(kCFAllocatorDefault, masterClock, &timebase)
return timebase!
}
var rate: Float64 {
set {
CMTimebaseSetRate(self, rate)
print(self)
}
get {
return CMTimebaseGetRate(self)
}
}
var seconds: Float64 {
return CMTimeGetSeconds(CMTimebaseGetTime(self))
}
}
Dans mon code je l'utilise comme ça:
let timebase = CMTimebase.instance(withMasterClock:captureSession.masterClock)
timebase.rate = 1.0
Et je me demande pourquoi cela ne fonctionne pas parce que quand je fais l'impression (base de temps) le taux est fixé à 0,0 après appel. Ce qui est vraiment drôle quand j'appelle:
CMTimebaseSetRate(timebase, 1.0)
Puis le taux est fixé à 1.0 comme prévu. Je pense que le problème n'est pas lié uniquement à CoreMedia ou peut-être que je ne comprends pas certains concepts fondamentaux derrière l'extension. S'il vous plaît, aidez si vous savez comment corriger mon extension. J'essaie de cibler Swift 3.