Przeglądaj źródła

feat: 移动端使用全景图

chenlei 2 miesięcy temu
rodzic
commit
e1b5750c98
83 zmienionych plików z 119 dodań i 65 usunięć
  1. 1 1
      Code/public/myData/myData.js
  2. 118 64
      Code/src/pages/A2visit/PanoVideo/index.tsx
  3. BIN
      资源/pano/pano1.jpg
  4. BIN
      资源/pano/pano1.tiles/b/l1/1/l1_b_1_1.jpg
  5. BIN
      资源/pano/pano1.tiles/b/l1/1/l1_b_1_2.jpg
  6. BIN
      资源/pano/pano1.tiles/b/l1/2/l1_b_2_1.jpg
  7. BIN
      资源/pano/pano1.tiles/b/l1/2/l1_b_2_2.jpg
  8. BIN
      资源/pano/pano1.tiles/b/l2/1/l2_b_1_1.jpg
  9. BIN
      资源/pano/pano1.tiles/b/l2/1/l2_b_1_2.jpg
  10. BIN
      资源/pano/pano1.tiles/b/l2/1/l2_b_1_3.jpg
  11. BIN
      资源/pano/pano1.tiles/b/l2/2/l2_b_2_1.jpg
  12. BIN
      资源/pano/pano1.tiles/b/l2/2/l2_b_2_2.jpg
  13. BIN
      资源/pano/pano1.tiles/b/l2/2/l2_b_2_3.jpg
  14. BIN
      资源/pano/pano1.tiles/b/l2/3/l2_b_3_1.jpg
  15. BIN
      资源/pano/pano1.tiles/b/l2/3/l2_b_3_2.jpg
  16. BIN
      资源/pano/pano1.tiles/b/l2/3/l2_b_3_3.jpg
  17. BIN
      资源/pano/pano1.tiles/d/l1/1/l1_d_1_1.jpg
  18. BIN
      资源/pano/pano1.tiles/d/l1/1/l1_d_1_2.jpg
  19. BIN
      资源/pano/pano1.tiles/d/l1/2/l1_d_2_1.jpg
  20. BIN
      资源/pano/pano1.tiles/d/l1/2/l1_d_2_2.jpg
  21. BIN
      资源/pano/pano1.tiles/d/l2/1/l2_d_1_1.jpg
  22. BIN
      资源/pano/pano1.tiles/d/l2/1/l2_d_1_2.jpg
  23. BIN
      资源/pano/pano1.tiles/d/l2/1/l2_d_1_3.jpg
  24. BIN
      资源/pano/pano1.tiles/d/l2/2/l2_d_2_1.jpg
  25. BIN
      资源/pano/pano1.tiles/d/l2/2/l2_d_2_2.jpg
  26. BIN
      资源/pano/pano1.tiles/d/l2/2/l2_d_2_3.jpg
  27. BIN
      资源/pano/pano1.tiles/d/l2/3/l2_d_3_1.jpg
  28. BIN
      资源/pano/pano1.tiles/d/l2/3/l2_d_3_2.jpg
  29. BIN
      资源/pano/pano1.tiles/d/l2/3/l2_d_3_3.jpg
  30. BIN
      资源/pano/pano1.tiles/f/l1/1/l1_f_1_1.jpg
  31. BIN
      资源/pano/pano1.tiles/f/l1/1/l1_f_1_2.jpg
  32. BIN
      资源/pano/pano1.tiles/f/l1/2/l1_f_2_1.jpg
  33. BIN
      资源/pano/pano1.tiles/f/l1/2/l1_f_2_2.jpg
  34. BIN
      资源/pano/pano1.tiles/f/l2/1/l2_f_1_1.jpg
  35. BIN
      资源/pano/pano1.tiles/f/l2/1/l2_f_1_2.jpg
  36. BIN
      资源/pano/pano1.tiles/f/l2/1/l2_f_1_3.jpg
  37. BIN
      资源/pano/pano1.tiles/f/l2/2/l2_f_2_1.jpg
  38. BIN
      资源/pano/pano1.tiles/f/l2/2/l2_f_2_2.jpg
  39. BIN
      资源/pano/pano1.tiles/f/l2/2/l2_f_2_3.jpg
  40. BIN
      资源/pano/pano1.tiles/f/l2/3/l2_f_3_1.jpg
  41. BIN
      资源/pano/pano1.tiles/f/l2/3/l2_f_3_2.jpg
  42. BIN
      资源/pano/pano1.tiles/f/l2/3/l2_f_3_3.jpg
  43. BIN
      资源/pano/pano1.tiles/l/l1/1/l1_l_1_1.jpg
  44. BIN
      资源/pano/pano1.tiles/l/l1/1/l1_l_1_2.jpg
  45. BIN
      资源/pano/pano1.tiles/l/l1/2/l1_l_2_1.jpg
  46. BIN
      资源/pano/pano1.tiles/l/l1/2/l1_l_2_2.jpg
  47. BIN
      资源/pano/pano1.tiles/l/l2/1/l2_l_1_1.jpg
  48. BIN
      资源/pano/pano1.tiles/l/l2/1/l2_l_1_2.jpg
  49. BIN
      资源/pano/pano1.tiles/l/l2/1/l2_l_1_3.jpg
  50. BIN
      资源/pano/pano1.tiles/l/l2/2/l2_l_2_1.jpg
  51. BIN
      资源/pano/pano1.tiles/l/l2/2/l2_l_2_2.jpg
  52. BIN
      资源/pano/pano1.tiles/l/l2/2/l2_l_2_3.jpg
  53. BIN
      资源/pano/pano1.tiles/l/l2/3/l2_l_3_1.jpg
  54. BIN
      资源/pano/pano1.tiles/l/l2/3/l2_l_3_2.jpg
  55. BIN
      资源/pano/pano1.tiles/l/l2/3/l2_l_3_3.jpg
  56. BIN
      资源/pano/pano1.tiles/preview.jpg
  57. BIN
      资源/pano/pano1.tiles/r/l1/1/l1_r_1_1.jpg
  58. BIN
      资源/pano/pano1.tiles/r/l1/1/l1_r_1_2.jpg
  59. BIN
      资源/pano/pano1.tiles/r/l1/2/l1_r_2_1.jpg
  60. BIN
      资源/pano/pano1.tiles/r/l1/2/l1_r_2_2.jpg
  61. BIN
      资源/pano/pano1.tiles/r/l2/1/l2_r_1_1.jpg
  62. BIN
      资源/pano/pano1.tiles/r/l2/1/l2_r_1_2.jpg
  63. BIN
      资源/pano/pano1.tiles/r/l2/1/l2_r_1_3.jpg
  64. BIN
      资源/pano/pano1.tiles/r/l2/2/l2_r_2_1.jpg
  65. BIN
      资源/pano/pano1.tiles/r/l2/2/l2_r_2_2.jpg
  66. BIN
      资源/pano/pano1.tiles/r/l2/2/l2_r_2_3.jpg
  67. BIN
      资源/pano/pano1.tiles/r/l2/3/l2_r_3_1.jpg
  68. BIN
      资源/pano/pano1.tiles/r/l2/3/l2_r_3_2.jpg
  69. BIN
      资源/pano/pano1.tiles/r/l2/3/l2_r_3_3.jpg
  70. BIN
      资源/pano/pano1.tiles/thumb.jpg
  71. BIN
      资源/pano/pano1.tiles/u/l1/1/l1_u_1_1.jpg
  72. BIN
      资源/pano/pano1.tiles/u/l1/1/l1_u_1_2.jpg
  73. BIN
      资源/pano/pano1.tiles/u/l1/2/l1_u_2_1.jpg
  74. BIN
      资源/pano/pano1.tiles/u/l1/2/l1_u_2_2.jpg
  75. BIN
      资源/pano/pano1.tiles/u/l2/1/l2_u_1_1.jpg
  76. BIN
      资源/pano/pano1.tiles/u/l2/1/l2_u_1_2.jpg
  77. BIN
      资源/pano/pano1.tiles/u/l2/1/l2_u_1_3.jpg
  78. BIN
      资源/pano/pano1.tiles/u/l2/2/l2_u_2_1.jpg
  79. BIN
      资源/pano/pano1.tiles/u/l2/2/l2_u_2_2.jpg
  80. BIN
      资源/pano/pano1.tiles/u/l2/2/l2_u_2_3.jpg
  81. BIN
      资源/pano/pano1.tiles/u/l2/3/l2_u_3_1.jpg
  82. BIN
      资源/pano/pano1.tiles/u/l2/3/l2_u_3_2.jpg
  83. BIN
      资源/pano/pano1.tiles/u/l2/3/l2_u_3_3.jpg

+ 1 - 1
Code/public/myData/myData.js

@@ -3,7 +3,7 @@ window.isHH = document.documentElement.clientWidth >= document.documentElement.c
 const isPcTemp = document.documentElement.clientWidth >= 1200
 
 // 本地开发静态资源目录
-const baseUrlLoc = 'http://192.168.20.55:8080/staticData/'
+const baseUrlLoc = 'http://192.168.0.18:8080/staticData/'
 
 // 发送请求基地址
 const apiUrlTemp = 'https://sit-handaizy.4dage.com/api/'

+ 118 - 64
Code/src/pages/A2visit/PanoVideo/index.tsx

@@ -2,7 +2,7 @@ import React, { useEffect, useMemo, useRef, useState } from 'react'
 import styles from './index.module.scss'
 import { otherUrl, hotInfo } from '@/utils/http'
 import HotIcon from '@/components/HotIcon'
-import { HotSpot, Krpano, VideoScene, videoSceneModel, View } from '@dage/krpano'
+import { HotSpot, Krpano, Scene, VideoScene, videoSceneModel, View } from '@dage/krpano'
 import { KrpanoMiddleware, KrpanoMiddlewareMethods } from '@/components/KrpanoMiddleware'
 import ZHot0 from '@/components/ZHot0'
 import Zhot from '@/components/Zhot'
@@ -55,73 +55,127 @@ function PanoVideo({ lodingOk }: Propr) {
           className={styles.PanoVideo}
           currentScene='scene1'
           onReady={() => {
-            middlewareIns.current?.ready()
+            isMobile ? lodingOk() : middlewareIns.current?.ready()
           }}
         >
-          <VideoScene
-            name='scene1'
-            videointerfaceXmlUrl='./skin/videointerface.xml'
-            videoplayerUrl='./plugins/videoplayer.js'
-            sourceList={[
-              {
-                res: '8000x4000',
-                url: otherUrl + 'pano/1.mp4',
-                poster: otherUrl + 'pano/pano1.jpg'
-              },
-              {
-                res: '2000x1000',
-                url: otherUrl + 'pano/1-2k.mp4',
-                poster: otherUrl + 'pano/pano1.jpg'
-              },
-              {
-                res: '4000x2000',
-                url: otherUrl + 'pano/1-4k.mp4',
-                poster: otherUrl + 'pano/pano1.jpg'
-              }
-            ]}
-            playRes={
-              isMobile
-                ? window.innerHeight * window.devicePixelRatio > 2400
-                  ? '4000x2000'
-                  : '2000x1000'
-                : '8000x4000'
-            }
-            onVisibility={() => {
-              if (document.visibilityState === 'visible') {
-                videoSceneModel.play()
+          {isMobile ? (
+            <Scene
+              name='scene1'
+              previewUrl={otherUrl + 'pano/pano1.tiles/thumb.jpg'}
+              imageTagAttributes={{
+                type: 'cube',
+                tileSize: 512,
+                multires: true
+              }}
+              images={[
+                {
+                  tiledImageWidth: 1280,
+                  tiledImageHeight: 1280,
+                  url: otherUrl + 'pano/pano1.tiles/%s/l2/%v/l2_%s_%v_%h.jpg'
+                },
+                {
+                  tiledImageWidth: 640,
+                  tiledImageHeight: 640,
+                  url: otherUrl + 'pano/pano1.tiles/%s/l1/%v/l1_%s_%v_%h.jpg'
+                }
+              ]}
+            >
+              <View hlookat={0} vlookat={0} fovType='MFOV' fov={120} fovMin={70} fovMax={130} />
+              {arrRes.map((item, index) => (
+                // 热点图标
+                <HotSpot
+                  key={index}
+                  type='text'
+                  name={item.name}
+                  atv={item.panoLoc.atv}
+                  ath={item.panoLoc.ath}
+                  edge='top'
+                  distorted={true}
+                  scale={item.panoLoc.size}
+                  bg={false}
+                  onOver={() => setActiveIdx(index)}
+                  onOut={() => setActiveIdx(-1)}
+                  onClick={() => setAcName(item.name)}
+                  // @ts-ignore
+                  // onDown='draggable_hotspot()'
+                >
+                  <HotIcon
+                    isModel={item.tubiao === '文物' ? true : false}
+                    key={index}
+                    index={index}
+                    isHoverAc={activeIdx === index}
+                    hoverSrc={item.hoverSrc}
+                    panoWidth='113px'
+                  />
+                </HotSpot>
+              ))}
+            </Scene>
+          ) : (
+            <VideoScene
+              name='scene1'
+              videointerfaceXmlUrl='./skin/videointerface.xml'
+              videoplayerUrl='./plugins/videoplayer.js'
+              sourceList={[
+                {
+                  res: '8000x4000',
+                  url: otherUrl + 'pano/1.mp4',
+                  poster: otherUrl + 'pano/pano1.jpg'
+                },
+                {
+                  res: '2000x1000',
+                  url: otherUrl + 'pano/1-2k.mp4',
+                  poster: otherUrl + 'pano/pano1.jpg'
+                },
+                {
+                  res: '4000x2000',
+                  url: otherUrl + 'pano/1-4k.mp4',
+                  poster: otherUrl + 'pano/pano1.jpg'
+                }
+              ]}
+              playRes={
+                isMobile
+                  ? window.innerHeight * window.devicePixelRatio > 2400
+                    ? '4000x2000'
+                    : '2000x1000'
+                  : '8000x4000'
               }
-            }}
-          >
-            <View hlookat={0} vlookat={0} fovType='MFOV' fov={120} fovMin={70} fovMax={130} />
-            {arrRes.map((item, index) => (
-              // 热点图标
-              <HotSpot
-                key={index}
-                type='text'
-                name={item.name}
-                atv={item.panoLoc.atv}
-                ath={item.panoLoc.ath}
-                edge='top'
-                distorted={true}
-                scale={item.panoLoc.size}
-                bg={false}
-                onOver={() => setActiveIdx(index)}
-                onOut={() => setActiveIdx(-1)}
-                onClick={() => setAcName(item.name)}
-                // @ts-ignore
-                // onDown='draggable_hotspot()'
-              >
-                <HotIcon
-                  isModel={item.tubiao === '文物' ? true : false}
+              onVisibility={() => {
+                if (document.visibilityState === 'visible') {
+                  videoSceneModel.play()
+                }
+              }}
+            >
+              <View hlookat={0} vlookat={0} fovType='MFOV' fov={120} fovMin={70} fovMax={130} />
+              {arrRes.map((item, index) => (
+                // 热点图标
+                <HotSpot
                   key={index}
-                  index={index}
-                  isHoverAc={activeIdx === index}
-                  hoverSrc={item.hoverSrc}
-                  panoWidth='113px'
-                />
-              </HotSpot>
-            ))}
-          </VideoScene>
+                  type='text'
+                  name={item.name}
+                  atv={item.panoLoc.atv}
+                  ath={item.panoLoc.ath}
+                  edge='top'
+                  distorted={true}
+                  scale={item.panoLoc.size}
+                  bg={false}
+                  onOver={() => setActiveIdx(index)}
+                  onOut={() => setActiveIdx(-1)}
+                  onClick={() => setAcName(item.name)}
+                  // @ts-ignore
+                  // onDown='draggable_hotspot()'
+                >
+                  <HotIcon
+                    isModel={item.tubiao === '文物' ? true : false}
+                    key={index}
+                    index={index}
+                    isHoverAc={activeIdx === index}
+                    hoverSrc={item.hoverSrc}
+                    panoWidth='113px'
+                  />
+                </HotSpot>
+              ))}
+            </VideoScene>
+          )}
         </Krpano>
       </KrpanoMiddleware>
 

BIN
资源/pano/pano1.jpg


BIN
资源/pano/pano1.tiles/b/l1/1/l1_b_1_1.jpg


BIN
资源/pano/pano1.tiles/b/l1/1/l1_b_1_2.jpg


BIN
资源/pano/pano1.tiles/b/l1/2/l1_b_2_1.jpg


BIN
资源/pano/pano1.tiles/b/l1/2/l1_b_2_2.jpg


BIN
资源/pano/pano1.tiles/b/l2/1/l2_b_1_1.jpg


BIN
资源/pano/pano1.tiles/b/l2/1/l2_b_1_2.jpg


BIN
资源/pano/pano1.tiles/b/l2/1/l2_b_1_3.jpg


BIN
资源/pano/pano1.tiles/b/l2/2/l2_b_2_1.jpg


BIN
资源/pano/pano1.tiles/b/l2/2/l2_b_2_2.jpg


BIN
资源/pano/pano1.tiles/b/l2/2/l2_b_2_3.jpg


BIN
资源/pano/pano1.tiles/b/l2/3/l2_b_3_1.jpg


BIN
资源/pano/pano1.tiles/b/l2/3/l2_b_3_2.jpg


BIN
资源/pano/pano1.tiles/b/l2/3/l2_b_3_3.jpg


BIN
资源/pano/pano1.tiles/d/l1/1/l1_d_1_1.jpg


BIN
资源/pano/pano1.tiles/d/l1/1/l1_d_1_2.jpg


BIN
资源/pano/pano1.tiles/d/l1/2/l1_d_2_1.jpg


BIN
资源/pano/pano1.tiles/d/l1/2/l1_d_2_2.jpg


BIN
资源/pano/pano1.tiles/d/l2/1/l2_d_1_1.jpg


BIN
资源/pano/pano1.tiles/d/l2/1/l2_d_1_2.jpg


BIN
资源/pano/pano1.tiles/d/l2/1/l2_d_1_3.jpg


BIN
资源/pano/pano1.tiles/d/l2/2/l2_d_2_1.jpg


BIN
资源/pano/pano1.tiles/d/l2/2/l2_d_2_2.jpg


BIN
资源/pano/pano1.tiles/d/l2/2/l2_d_2_3.jpg


BIN
资源/pano/pano1.tiles/d/l2/3/l2_d_3_1.jpg


BIN
资源/pano/pano1.tiles/d/l2/3/l2_d_3_2.jpg


BIN
资源/pano/pano1.tiles/d/l2/3/l2_d_3_3.jpg


BIN
资源/pano/pano1.tiles/f/l1/1/l1_f_1_1.jpg


BIN
资源/pano/pano1.tiles/f/l1/1/l1_f_1_2.jpg


BIN
资源/pano/pano1.tiles/f/l1/2/l1_f_2_1.jpg


BIN
资源/pano/pano1.tiles/f/l1/2/l1_f_2_2.jpg


BIN
资源/pano/pano1.tiles/f/l2/1/l2_f_1_1.jpg


BIN
资源/pano/pano1.tiles/f/l2/1/l2_f_1_2.jpg


BIN
资源/pano/pano1.tiles/f/l2/1/l2_f_1_3.jpg


BIN
资源/pano/pano1.tiles/f/l2/2/l2_f_2_1.jpg


BIN
资源/pano/pano1.tiles/f/l2/2/l2_f_2_2.jpg


BIN
资源/pano/pano1.tiles/f/l2/2/l2_f_2_3.jpg


BIN
资源/pano/pano1.tiles/f/l2/3/l2_f_3_1.jpg


BIN
资源/pano/pano1.tiles/f/l2/3/l2_f_3_2.jpg


BIN
资源/pano/pano1.tiles/f/l2/3/l2_f_3_3.jpg


BIN
资源/pano/pano1.tiles/l/l1/1/l1_l_1_1.jpg


BIN
资源/pano/pano1.tiles/l/l1/1/l1_l_1_2.jpg


BIN
资源/pano/pano1.tiles/l/l1/2/l1_l_2_1.jpg


BIN
资源/pano/pano1.tiles/l/l1/2/l1_l_2_2.jpg


BIN
资源/pano/pano1.tiles/l/l2/1/l2_l_1_1.jpg


BIN
资源/pano/pano1.tiles/l/l2/1/l2_l_1_2.jpg


BIN
资源/pano/pano1.tiles/l/l2/1/l2_l_1_3.jpg


BIN
资源/pano/pano1.tiles/l/l2/2/l2_l_2_1.jpg


BIN
资源/pano/pano1.tiles/l/l2/2/l2_l_2_2.jpg


BIN
资源/pano/pano1.tiles/l/l2/2/l2_l_2_3.jpg


BIN
资源/pano/pano1.tiles/l/l2/3/l2_l_3_1.jpg


BIN
资源/pano/pano1.tiles/l/l2/3/l2_l_3_2.jpg


BIN
资源/pano/pano1.tiles/l/l2/3/l2_l_3_3.jpg


BIN
资源/pano/pano1.tiles/preview.jpg


BIN
资源/pano/pano1.tiles/r/l1/1/l1_r_1_1.jpg


BIN
资源/pano/pano1.tiles/r/l1/1/l1_r_1_2.jpg


BIN
资源/pano/pano1.tiles/r/l1/2/l1_r_2_1.jpg


BIN
资源/pano/pano1.tiles/r/l1/2/l1_r_2_2.jpg


BIN
资源/pano/pano1.tiles/r/l2/1/l2_r_1_1.jpg


BIN
资源/pano/pano1.tiles/r/l2/1/l2_r_1_2.jpg


BIN
资源/pano/pano1.tiles/r/l2/1/l2_r_1_3.jpg


BIN
资源/pano/pano1.tiles/r/l2/2/l2_r_2_1.jpg


BIN
资源/pano/pano1.tiles/r/l2/2/l2_r_2_2.jpg


BIN
资源/pano/pano1.tiles/r/l2/2/l2_r_2_3.jpg


BIN
资源/pano/pano1.tiles/r/l2/3/l2_r_3_1.jpg


BIN
资源/pano/pano1.tiles/r/l2/3/l2_r_3_2.jpg


BIN
资源/pano/pano1.tiles/r/l2/3/l2_r_3_3.jpg


BIN
资源/pano/pano1.tiles/thumb.jpg


BIN
资源/pano/pano1.tiles/u/l1/1/l1_u_1_1.jpg


BIN
资源/pano/pano1.tiles/u/l1/1/l1_u_1_2.jpg


BIN
资源/pano/pano1.tiles/u/l1/2/l1_u_2_1.jpg


BIN
资源/pano/pano1.tiles/u/l1/2/l1_u_2_2.jpg


BIN
资源/pano/pano1.tiles/u/l2/1/l2_u_1_1.jpg


BIN
资源/pano/pano1.tiles/u/l2/1/l2_u_1_2.jpg


BIN
资源/pano/pano1.tiles/u/l2/1/l2_u_1_3.jpg


BIN
资源/pano/pano1.tiles/u/l2/2/l2_u_2_1.jpg


BIN
资源/pano/pano1.tiles/u/l2/2/l2_u_2_2.jpg


BIN
资源/pano/pano1.tiles/u/l2/2/l2_u_2_3.jpg


BIN
资源/pano/pano1.tiles/u/l2/3/l2_u_3_1.jpg


BIN
资源/pano/pano1.tiles/u/l2/3/l2_u_3_2.jpg


BIN
资源/pano/pano1.tiles/u/l2/3/l2_u_3_3.jpg