如何控制iOS Sprite Kit SKVideoNode中视频的播放?

如何控制iOS Sprite Kit SKVideoNode中视频的播放?,ios,sprite-kit,Ios,Sprite Kit,我将视频加载到我的Sprite Kit SKVideoNode中,但如何停止并重新启动播放或转到视频中的特定时间?我所看到的只是播放和暂停的方法 // AVPlayer NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"HowToPlay" ofType:@"mp4"]]; _avPlayer = [AVPlayer playerWithURL:fileURL]; // SKVide

我将视频加载到我的Sprite Kit SKVideoNode中,但如何停止并重新启动播放或转到视频中的特定时间?我所看到的只是播放和暂停的方法

// AVPlayer
NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"HowToPlay" ofType:@"mp4"]];
_avPlayer = [AVPlayer playerWithURL:fileURL];

// SKVideoNode
_videoNode = [SKVideoNode videoNodeWithAVPlayer:_avPlayer];
[_videoNode play];

使用SKVideoNode所能做的就是<代码>播放和暂停是唯一受支持的播放方法

没有停止,因为它相当于在此上下文中的暂停——“停止”应该做什么,渲染黑色纹理?如果SKVideoNode应在“停止”时删除,则只需向其发送
removeFromParent
消息,即可“停止”它

回放是不必要的,因为您只需再次运行
play
方法或创建新的SKVideoNode即可


我假设不支持跳转到特定的时间范围,因为这不可能是即时的,因此,在视频播放位置移动到指定的时间戳之前,节点应该显示什么?如果您保留对用于初始化视频节点的
AVPlayer
对象的引用,那么您可以使用它的来控制播放,这对我来说是可行的

重新启动:

[_videoNode removeFromParent];
 _videoNode = [SKVideoNode videoNodeWithVideoFileNamed:@"video.mp4"];
 _videoNode.position = ...
_videoNode.size = ...
[self addChild:_videoNode];
[_videoNode play];
暂停:

[_videoNode pause];
_videoNode.paused = YES;
播放:


这是经验还是你只是猜测对我来说,情况大不相同。播放视频时,再次运行播放方法没有任何效果。我可以用暂停命令暂停,用播放命令取消暂停,但仅此而已。做一个从父母身上移除的动作,只是让它看不见,它仍然在播放,声音可以听到。主要基于文档和一些实验。它在删除后继续播放,这听起来像是一个bug,也许该节点仍然在某个地方被强烈引用?尝试在Sprite工具包模板项目中使用SKVideoNode来单独观察其行为。如果我在AVPlayer引用中抛出命令,它们绝对没有效果。只有对视频节点的命令才能执行任何操作。这听起来像是一个bug,因为文档中清楚地说明了其他情况。
[_videoNode play];
_videoNode.paused = NO;