前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VR+全景播放器+头控讲解-03

VR+全景播放器+头控讲解-03

作者头像
酷走天涯
发布2018-09-14 15:06:25
6640
发布2018-09-14 15:06:25
举报
本节学习目标

如何创建将APlayer 加载的视频渲染到球体上

实现步骤
  • 第一步 创建一个AVPlayer 对象 _player = [[AVPlayer alloc]init];
  • 第二步 创建一个SCNVedioNode 对象 self.vedioNode = [[SKVideoNode alloc]initWithAVPlayer:_player]; self.vedioNode.size = CGSizeMake(VEDIO_WIDHT, VEDIO_HEIGHT);
  • 第三步 创建一个SKScene 对象 _skScene = [SKScene sceneWithSize:self.vedioNode.size]; self.skScene.scaleMode = SKSceneScaleModeAspectFit;
  • 第四步 让球体去渲染这个SKScene 对象 [self.skScene addChild:self.vedioNode]; self.vedioNode.position = CGPointMake(VEDIO_WIDHT/2, VEDIO_HEIGHT/2); // 将skscene对象设置为球体渲染的内容 self.renderNode.geometry.firstMaterial.diffuse.contents = self.skScene;
其他功能实现

下面这部分都比较简单

  • 1.监听播放器的当前时间,缓冲时间,视频总时长 self.observerPlayerTime = [self.player addPeriodicTimeObserverForInterval:CMTimeMake(1, 1) queue:dispatch_get_main_queue() usingBlock:^(CMTime time) { // 处理逻辑代码 }];
  • 2.视频可播放状态检测 [self.player reasonForWaitingToPlay]
  • 3.播放/暂停功能 [self.player play]; [slef.player pause];
  • 4.播放完成/失败检测 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(playToEndTime:) name:AVPlayerItemDidPlayToEndTimeNotification object:nil]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(playFail:) name:AVPlayerItemNewErrorLogEntryNotification object:nil];
  • 5.计算视频缓冲的时间 NSArray *loadedTimeRanges = [[self.player currentItem] loadedTimeRanges]; CMTimeRange timeRange = [loadedTimeRanges.firstObject CMTimeRangeValue];// 获取缓冲区域 float startSeconds = CMTimeGetSeconds(timeRange.start); float durationSeconds = CMTimeGetSeconds(timeRange.duration); NSTimeInterval result = startSeconds + durationSeconds;// 计算缓冲总进度

本节内容讲解完毕 SceneKit 中文教程

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.03.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本节学习目标
  • 实现步骤
  • 其他功能实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档