Xcode 7.2 SKVideoNode won't respect AVPlayer rate

This issue was previously stated by bkallay in the iOS 9 beta forums, but as no solution was posted there, the forum is now archived and this issue still exists as of Xcode 7.2, I felt it was necessary to post again.


Basically SKVideoNode will not respect AVPlayer's rate.


By default, SKVideoNode has no way of controlling playback rate. However, the SKVideoNode can be initialized with an AVPlayer (which itself contains an AVPlayerItem). This AVPlayer has a property rate which can vary from 0 to 2 (1 is normal speed). There is also the method setRate:time:atHostTime:.


As bkallay noted and I have experienced, is that in SKVideoNode's play method, the value of AVPlayer's rate is overwritten to 1.0. As this is the only way to play an SKVideoNode (please correct me if I am wrong - the play function on AVPlayer has no effect on the SKVideoNode), I am at a lost as to how to proceed as variable video playback in an integral part of our application.


I have tried both setting the rate property, and using setRate:time:atHostTime: once the AVPlayerItem is ready to play (notified using AVPlayerStatus). By subclassing SKVideoNode, overriding the play method and printing out AVPlayer's rate before and after calling the superclass's play method, it is clear that SKVideoNode exhibits the behavior as described above.


As of iOS 9 SKVideoNode also doesn't work in the simulator, while it automatically plays on addition to a scene. All these issues seem to point to the fact that SKVideoNode is somewhat broken. Any advice of how to get around this situation would be greately appreciated. As the video is meant to be played in the background with SpriteKit elements on top of it, placing an AVPlayer on a separate sub UIView isn't a viable option.


Thanks for your assistence.