日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/3/26 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VR+全景播放器+头控讲解-03 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

VR+全景播放器+頭控講解-01-知識儲備
VR+全景播放器+頭控講解-02-創建球體
VR+全景播放器+頭控講解-03-渲染視頻
VR+全景播放器+頭控講解-04-滑動手勢
VR+全景播放器+頭控講解-05-伸縮畫面
VR+全景播放器+頭控講解-06-頭控實現
VR+全景播放器+頭控講解-07-分屏技術

本節學習目標

如何創建將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 中文教程

總結

以上是生活随笔為你收集整理的VR+全景播放器+头控讲解-03的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。