我们在SpriteKit游戏中添加了一个SKVideoNode
SKScene
,并且mp4视频在90%的时间内都可以正常播放,10%的时间只是渲染透明视频,音频播放得很好。
透明的意思是,这个视频位于我们游戏板的上方,当它出现故障时,可以在下方看到游戏,但没有任何响应,因为视频节点位于一切的顶部阻止用户交互。来自视频的音频仍然可以正常播放,所以我知道它试图播放。
它完全不一致。视频在大多数情况下播放都很好,但看起来似乎有10%的时间,它只是不向节点呈现任何视频内容,只呈现音频。
我们在iOS的所有版本中都看到了这一点。
我们的节点代码:
NSURL *fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"intro" ofType:@"mp4"]];
AVPlayer* player = [AVPlayer playerWithURL:fileURL];
SKVideoNode* introVideoNode = [[SKVideoNode alloc] initWithAVPlayer:player];
introVideoNode.size = CGSizeMake(self.frame.size.width,self.frame.size.height);
introVideoNode.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
introVideoNode.name = @"introVideo";
// this video plays over top of many other SKSpriteNodes
introVideoNode.zPosition = 8000;
[self addChild:introVideoNode];
[introVideoNode play];
思想?