VR+全景播放器+头控讲解-03
VR+全景播放器+頭控講解-01-知識儲備
VR+全景播放器+頭控講解-02-創(chuàng)建球體
VR+全景播放器+頭控講解-03-渲染視頻
VR+全景播放器+頭控講解-04-滑動手勢
VR+全景播放器+頭控講解-05-伸縮畫面
VR+全景播放器+頭控講解-06-頭控實(shí)現(xiàn)
VR+全景播放器+頭控講解-07-分屏技術(shù)
本節(jié)學(xué)習(xí)目標(biāo)
如何創(chuàng)建將APlayer 加載的視頻渲染到球體上
實(shí)現(xiàn)步驟
-
第一步 創(chuàng)建一個(gè)AVPlayer 對象
_player = [[AVPlayer alloc]init]; -
第二步 創(chuàng)建一個(gè)SCNVedioNode 對象
self.vedioNode = [[SKVideoNode alloc]initWithAVPlayer:_player]; self.vedioNode.size = CGSizeMake(VEDIO_WIDHT, VEDIO_HEIGHT); -
第三步 創(chuàng)建一個(gè)SKScene 對象
_skScene = [SKScene sceneWithSize:self.vedioNode.size]; self.skScene.scaleMode = SKSceneScaleModeAspectFit; -
第四步 讓球體去渲染這個(gè)SKScene 對象
[self.skScene addChild:self.vedioNode]; self.vedioNode.position = CGPointMake(VEDIO_WIDHT/2, VEDIO_HEIGHT/2);// 將skscene對象設(shè)置為球體渲染的內(nèi)容
self.renderNode.geometry.firstMaterial.diffuse.contents = self.skScene;
其他功能實(shí)現(xiàn)
下面這部分都比較簡單
-
1.監(jiān)聽播放器的當(dāng)前時(shí)間,緩沖時(shí)間,視頻總時(shí)長
self.observerPlayerTime = [self.player addPeriodicTimeObserverForInterval:CMTimeMake(1, 1) queue:dispatch_get_main_queue() usingBlock:^(CMTime time) {// 處理邏輯代碼 }]; 2.視頻可播放狀態(tài)檢測
[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.計(jì)算視頻緩沖的時(shí)間
NSArray *loadedTimeRanges = [[self.player currentItem] loadedTimeRanges]; CMTimeRange timeRange = [loadedTimeRanges.firstObject CMTimeRangeValue];// 獲取緩沖區(qū)域 float startSeconds = CMTimeGetSeconds(timeRange.start); float durationSeconds = CMTimeGetSeconds(timeRange.duration); NSTimeInterval result = startSeconds + durationSeconds;// 計(jì)算緩沖總進(jìn)度
本節(jié)內(nèi)容講解完畢
SceneKit 中文教程
總結(jié)
以上是生活随笔為你收集整理的VR+全景播放器+头控讲解-03的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图片文字转word文档的巧妙方法
- 下一篇: android 进程保活实践