Since iOS 10 it's better to user Block Based KVO instead of old KVO overriding func observeValue, like that:
player?.observe(\.rate, options: [.new] changeHandler: { player, change in
// video started
if player.rate > 0 {
// Do sth here
}
})
but you could use another way that apple provides: https://stackoverflow.com/a/47723769/2529869