[英]Video sequence in Sprite Kit leads to messy interruptions
我想在Sprite Kit中创建一个视频序列,并使用以下代码:
@interface VideScreenNode()
@end
@implementation VideScreenNode
- (void)setupVideoSequence
{
AVPlayerItem * intro = [AVPlayerItem playerItemWithURL:[self geturlFromFileName:@"Video1" andType:@"mp4"]];
AVPlayerItem * video1 = [AVPlayerItem playerItemWithURL:[self geturlFromFileName:@"Video2" andType:@"mp4"]];
AVPlayerItem * video2 = [AVPlayerItem playerItemWithURL:[self geturlFromFileName:@"Video3" andType:@"mp4"]];
AVPlayerItem * video3 = [AVPlayerItem playerItemWithURL:[self geturlFromFileName:@"Video4" andType:@"mp4"]];
AVPlayerItem * video4 = [AVPlayerItem playerItemWithURL:[self geturlFromFileName:@"Video5" andType:@"mp4"]];
AVPlayerItem * outro = [AVPlayerItem playerItemWithURL:[self geturlFromFileName:@"Video6" andType:@"mp4"]];
AVQueuePlayer * queuePlayer = [[AVQueuePlayer alloc] initWithItems:@[intro, video1, video2, video3, video4, outro]];
SKVideoNode * sequenceNode = [[SKVideoNode alloc] initWithAVPlayer: queuePlayer];
sequenceNode.position = CGPointMake(512, 384);
[sequenceNode play];
[self addChild:sequenceNode];
}
#pragma mark - helper
- (NSURL *)geturlFromFileName:(NSString *)name
andType:(NSString *)type
{
return [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource: name ofType:type]];
}
视频序列可以正常工作,但是每个剪辑之间的中断很小。 如何实现无缝过渡?
提前致谢。
您要添加对AVQueuePlayer
的调用。 如:
[queuePlayer prerollAtRate:float completionHandler:^(BOOL finished)completionHandler];
这会将文件加载到内存中并准备播放。 这将影响性能,具体取决于片段的大小。 它应该使您的过渡变得平滑。 但是,您将需要注意,就像status
属性不是AVPlayerStatusReadyToPlay
,这将失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.