AVPlayer
에 이 붙어 있습니다. 그게 SKScene
의 유일한 노드입니다. 그 비디오는 다양한 SKSpriteNode
노드로로드 된 일련의 다른 장면들과 섞여 있습니다.장면 전환 전에 SKVideoNode w/AVPlayer를 미리 롤링 하시겠습니까?
AVPlayer
을 미리 롤링하여 비디오가 SKScene
전환 중에 표시되기 직전에 재생되도록합니다. 그리고 아직 까맣게 개입하지 않고는 그렇게 할 수 없습니다.
비디오가 포함 된 장면이 사라지면 AVPlayer 객체를 의 사용자 사전에 넣습니다.
- (BOOL)startVideoInScene:(SKScene *)theScene
{
for (SKNode *n in [theScene children])
if ([n isKindOfClass:[SKVideoNode class]]) {
SKVideoNode *v = (SKVideoNode *)n;
AVPlayer *player = [[v userData] objectForKey:@"AVPlayer"];
if ([player isKindOfClass:[AVPlayer class]]) {
[v play];
return YES;
}
}
return NO;
}
이 작동하지 않습니다 ... 다음
SKTransition *trans = [SKTransition flipHorizontalWithDuration:1.0];
[self.skView presentScene:theScene transition:trans];
[self performSelector:@selector(startVideoInScene:)
withObject:theScene
afterDelay:0.2];
:
SKVideoNode *v = ...;
AVPlayer *player = [[v userData] objectForKey:@"AVPlayer"];
if ([player isKindOfClass:[AVPlayer class]]) {
[player seekToTime:kCMTimeZero];
장면이 그 비디오를 포함하고 표시하는 것입니다
, 나는이 수행이 작업 표시 짧은 시간 동안 검정색으로 시작하지 않고누구나 이걸 성공 했나요?
SKScene
의 모든 콘텐츠가 전환되는 동안 일시 중지되었으며 주위에는 경로가 없습니다. 음, 현재 장면의 모든 노드를 전환하고, 현재 장면을 유지하고 새로운 을 전환하는 것과 별개로