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

时间:2014-11-19 21:47:26

标签: ios sprite-kit

我将视频加载到我的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];

3 个答案:

答案 0 :(得分:1)

这对我有用。

重新启动:

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

暂停:

[_videoNode pause];
_videoNode.paused = YES;

玩:

[_videoNode play];
_videoNode.paused = NO;

答案 1 :(得分:0)

您对SKVideoNode所能做的就是documented hereplaypause是唯一支持的播放方法。

没有停止,因为它相当于在这种情况下暂停 - 应该“停止”做什么,渲染黑色纹理?如果应该在“停止”时删除SKVideoNode,那么只需发送removeFromParent消息,即“停止”它。

回滚是不必要的,因为您可以再次运行play方法或创建新的SKVideoNode。

我认为不支持跳转到特定的时间范围,因为这不是即时的,所以在视频播放位置移动到指定的时间戳之前,节点应该显示的问题是什么?

答案 2 :(得分:0)

如果您保留对用于初始化视频节点的AVPlayer对象的引用,则可以使用其methods

来控制播放