Sfoglia il codice sorgente

直播功能隐藏

liujiaxin 1 mese fa
parent
commit
d2d3e9ed86
5 ha cambiato i file con 660 aggiunte e 85 eliminazioni
  1. 590 5
      package-lock.json
  2. 1 1
      package.json
  3. 5 1
      pages/home/index.vue
  4. 64 78
      pages_course/components/liveVideo.vue
  5. BIN
      static/images/banner3.png

+ 590 - 5
package-lock.json

@@ -1,14 +1,529 @@
 {
 {
     "name": "shop",
     "name": "shop",
     "version": "1.0.0",
     "version": "1.0.0",
-    "lockfileVersion": 1,
+    "lockfileVersion": 2,
     "requires": true,
     "requires": true,
+    "packages": {
+        "": {
+            "name": "shop",
+            "version": "1.0.0",
+            "license": "ISC",
+            "dependencies": {
+                "animate.css": "^3.7.2",
+                "cos-wx-sdk-v5": "^1.0.10",
+                "crypto": "^1.0.1",
+                "crypto-js": "^4.2.0",
+                "dayjs": "^1.11.19",
+                "hls": "0.0.1",
+                "tim-wx-sdk": "^2.17.0",
+                "vuex": "^4.1.0",
+                "ws": "^8.19.0"
+            }
+        },
+        "node_modules/@babel/helper-string-parser": {
+            "version": "7.27.1",
+            "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+            "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+            "peer": true,
+            "engines": {
+                "node": ">=6.9.0"
+            }
+        },
+        "node_modules/@babel/helper-validator-identifier": {
+            "version": "7.28.5",
+            "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+            "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+            "peer": true,
+            "engines": {
+                "node": ">=6.9.0"
+            }
+        },
+        "node_modules/@babel/parser": {
+            "version": "7.29.0",
+            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
+            "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
+            "peer": true,
+            "dependencies": {
+                "@babel/types": "^7.29.0"
+            },
+            "bin": {
+                "parser": "bin/babel-parser.js"
+            },
+            "engines": {
+                "node": ">=6.0.0"
+            }
+        },
+        "node_modules/@babel/types": {
+            "version": "7.29.0",
+            "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+            "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+            "peer": true,
+            "dependencies": {
+                "@babel/helper-string-parser": "^7.27.1",
+                "@babel/helper-validator-identifier": "^7.28.5"
+            },
+            "engines": {
+                "node": ">=6.9.0"
+            }
+        },
+        "node_modules/@jridgewell/sourcemap-codec": {
+            "version": "1.5.5",
+            "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+            "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+            "peer": true
+        },
+        "node_modules/@vue/compiler-core": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.30.tgz",
+            "integrity": "sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw==",
+            "peer": true,
+            "dependencies": {
+                "@babel/parser": "^7.29.0",
+                "@vue/shared": "3.5.30",
+                "entities": "^7.0.1",
+                "estree-walker": "^2.0.2",
+                "source-map-js": "^1.2.1"
+            }
+        },
+        "node_modules/@vue/compiler-dom": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.30.tgz",
+            "integrity": "sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g==",
+            "peer": true,
+            "dependencies": {
+                "@vue/compiler-core": "3.5.30",
+                "@vue/shared": "3.5.30"
+            }
+        },
+        "node_modules/@vue/compiler-sfc": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.30.tgz",
+            "integrity": "sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A==",
+            "peer": true,
+            "dependencies": {
+                "@babel/parser": "^7.29.0",
+                "@vue/compiler-core": "3.5.30",
+                "@vue/compiler-dom": "3.5.30",
+                "@vue/compiler-ssr": "3.5.30",
+                "@vue/shared": "3.5.30",
+                "estree-walker": "^2.0.2",
+                "magic-string": "^0.30.21",
+                "postcss": "^8.5.8",
+                "source-map-js": "^1.2.1"
+            }
+        },
+        "node_modules/@vue/compiler-ssr": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.30.tgz",
+            "integrity": "sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==",
+            "peer": true,
+            "dependencies": {
+                "@vue/compiler-dom": "3.5.30",
+                "@vue/shared": "3.5.30"
+            }
+        },
+        "node_modules/@vue/devtools-api": {
+            "version": "6.6.4",
+            "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
+            "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
+        },
+        "node_modules/@vue/reactivity": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.30.tgz",
+            "integrity": "sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q==",
+            "peer": true,
+            "dependencies": {
+                "@vue/shared": "3.5.30"
+            }
+        },
+        "node_modules/@vue/runtime-core": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.30.tgz",
+            "integrity": "sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg==",
+            "peer": true,
+            "dependencies": {
+                "@vue/reactivity": "3.5.30",
+                "@vue/shared": "3.5.30"
+            }
+        },
+        "node_modules/@vue/runtime-dom": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.30.tgz",
+            "integrity": "sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw==",
+            "peer": true,
+            "dependencies": {
+                "@vue/reactivity": "3.5.30",
+                "@vue/runtime-core": "3.5.30",
+                "@vue/shared": "3.5.30",
+                "csstype": "^3.2.3"
+            }
+        },
+        "node_modules/@vue/server-renderer": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.30.tgz",
+            "integrity": "sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ==",
+            "peer": true,
+            "dependencies": {
+                "@vue/compiler-ssr": "3.5.30",
+                "@vue/shared": "3.5.30"
+            },
+            "peerDependencies": {
+                "vue": "3.5.30"
+            }
+        },
+        "node_modules/@vue/shared": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.30.tgz",
+            "integrity": "sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ==",
+            "peer": true
+        },
+        "node_modules/animate.css": {
+            "version": "3.7.2",
+            "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-3.7.2.tgz",
+            "integrity": "sha512-0bE8zYo7C0KvgOYrSVfrzkbYk6IOTVPNqkiHg2cbyF4Pq/PXzilz4BRWA3hwEUBoMp5VBgrC29lQIZyhRWdBTw=="
+        },
+        "node_modules/cos-wx-sdk-v5": {
+            "version": "1.1.5",
+            "resolved": "https://registry.npmjs.org/cos-wx-sdk-v5/-/cos-wx-sdk-v5-1.1.5.tgz",
+            "integrity": "sha512-++O7HD6Hz6UDlhgKMchJOap85bQtY+DKzPg2r5uCdyRb45AWC+Xj9qetXohPpA2G/inNVSqxw/EtjGPe2OIhyg==",
+            "dependencies": {
+                "mime": "^2.4.6",
+                "xmldom": "^0.1.31"
+            }
+        },
+        "node_modules/crypto": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz",
+            "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==",
+            "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in."
+        },
+        "node_modules/crypto-js": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+            "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
+        },
+        "node_modules/csstype": {
+            "version": "3.2.3",
+            "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+            "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+            "peer": true
+        },
+        "node_modules/dayjs": {
+            "version": "1.11.19",
+            "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
+            "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="
+        },
+        "node_modules/entities": {
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
+            "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
+            "peer": true,
+            "engines": {
+                "node": ">=0.12"
+            },
+            "funding": {
+                "url": "https://github.com/fb55/entities?sponsor=1"
+            }
+        },
+        "node_modules/estree-walker": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+            "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+            "peer": true
+        },
+        "node_modules/hls": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/hls/-/hls-0.0.1.tgz",
+            "integrity": "sha512-ov6aIzckaDCdFFAeJbrmZYhAR0O7w+nDXh3fz9XEcf8P6EercldLht/23JHRFXmAMtvKw8dzuOCafzktdV1AZw=="
+        },
+        "node_modules/magic-string": {
+            "version": "0.30.21",
+            "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+            "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+            "peer": true,
+            "dependencies": {
+                "@jridgewell/sourcemap-codec": "^1.5.5"
+            }
+        },
+        "node_modules/mime": {
+            "version": "2.6.0",
+            "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+            "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+            "bin": {
+                "mime": "cli.js"
+            },
+            "engines": {
+                "node": ">=4.0.0"
+            }
+        },
+        "node_modules/nanoid": {
+            "version": "3.3.11",
+            "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+            "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+            "funding": [
+                {
+                    "type": "github",
+                    "url": "https://github.com/sponsors/ai"
+                }
+            ],
+            "peer": true,
+            "bin": {
+                "nanoid": "bin/nanoid.cjs"
+            },
+            "engines": {
+                "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+            }
+        },
+        "node_modules/picocolors": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+            "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+            "peer": true
+        },
+        "node_modules/postcss": {
+            "version": "8.5.8",
+            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+            "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
+            "funding": [
+                {
+                    "type": "opencollective",
+                    "url": "https://opencollective.com/postcss/"
+                },
+                {
+                    "type": "tidelift",
+                    "url": "https://tidelift.com/funding/github/npm/postcss"
+                },
+                {
+                    "type": "github",
+                    "url": "https://github.com/sponsors/ai"
+                }
+            ],
+            "peer": true,
+            "dependencies": {
+                "nanoid": "^3.3.11",
+                "picocolors": "^1.1.1",
+                "source-map-js": "^1.2.1"
+            },
+            "engines": {
+                "node": "^10 || ^12 || >=14"
+            }
+        },
+        "node_modules/source-map-js": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+            "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+            "peer": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/tim-wx-sdk": {
+            "version": "2.18.0",
+            "resolved": "https://registry.npmjs.org/tim-wx-sdk/-/tim-wx-sdk-2.18.0.tgz",
+            "integrity": "sha512-Dz6aHpaCdk1ST/ZzltliSFHBsB5CdFU+q2NpFZc9PV8br0a5F2GyYgrdLn1Yqt8YntEwMReaud3LUY638zNJug=="
+        },
+        "node_modules/vue": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.30.tgz",
+            "integrity": "sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg==",
+            "peer": true,
+            "dependencies": {
+                "@vue/compiler-dom": "3.5.30",
+                "@vue/compiler-sfc": "3.5.30",
+                "@vue/runtime-dom": "3.5.30",
+                "@vue/server-renderer": "3.5.30",
+                "@vue/shared": "3.5.30"
+            },
+            "peerDependencies": {
+                "typescript": "*"
+            },
+            "peerDependenciesMeta": {
+                "typescript": {
+                    "optional": true
+                }
+            }
+        },
+        "node_modules/vuex": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz",
+            "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
+            "dependencies": {
+                "@vue/devtools-api": "^6.0.0-beta.11"
+            },
+            "peerDependencies": {
+                "vue": "^3.2.0"
+            }
+        },
+        "node_modules/ws": {
+            "version": "8.19.0",
+            "resolved": "https://registry.npmmirror.com/ws/-/ws-8.19.0.tgz",
+            "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
+            "engines": {
+                "node": ">=10.0.0"
+            },
+            "peerDependencies": {
+                "bufferutil": "^4.0.1",
+                "utf-8-validate": ">=5.0.2"
+            },
+            "peerDependenciesMeta": {
+                "bufferutil": {
+                    "optional": true
+                },
+                "utf-8-validate": {
+                    "optional": true
+                }
+            }
+        },
+        "node_modules/xmldom": {
+            "version": "0.1.31",
+            "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz",
+            "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==",
+            "deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0",
+            "engines": {
+                "node": ">=0.1"
+            }
+        }
+    },
     "dependencies": {
     "dependencies": {
+        "@babel/helper-string-parser": {
+            "version": "7.27.1",
+            "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+            "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+            "peer": true
+        },
+        "@babel/helper-validator-identifier": {
+            "version": "7.28.5",
+            "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+            "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+            "peer": true
+        },
+        "@babel/parser": {
+            "version": "7.29.0",
+            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
+            "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
+            "peer": true,
+            "requires": {
+                "@babel/types": "^7.29.0"
+            }
+        },
+        "@babel/types": {
+            "version": "7.29.0",
+            "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+            "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+            "peer": true,
+            "requires": {
+                "@babel/helper-string-parser": "^7.27.1",
+                "@babel/helper-validator-identifier": "^7.28.5"
+            }
+        },
+        "@jridgewell/sourcemap-codec": {
+            "version": "1.5.5",
+            "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+            "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+            "peer": true
+        },
+        "@vue/compiler-core": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.30.tgz",
+            "integrity": "sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw==",
+            "peer": true,
+            "requires": {
+                "@babel/parser": "^7.29.0",
+                "@vue/shared": "3.5.30",
+                "entities": "^7.0.1",
+                "estree-walker": "^2.0.2",
+                "source-map-js": "^1.2.1"
+            }
+        },
+        "@vue/compiler-dom": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.30.tgz",
+            "integrity": "sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g==",
+            "peer": true,
+            "requires": {
+                "@vue/compiler-core": "3.5.30",
+                "@vue/shared": "3.5.30"
+            }
+        },
+        "@vue/compiler-sfc": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.30.tgz",
+            "integrity": "sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A==",
+            "peer": true,
+            "requires": {
+                "@babel/parser": "^7.29.0",
+                "@vue/compiler-core": "3.5.30",
+                "@vue/compiler-dom": "3.5.30",
+                "@vue/compiler-ssr": "3.5.30",
+                "@vue/shared": "3.5.30",
+                "estree-walker": "^2.0.2",
+                "magic-string": "^0.30.21",
+                "postcss": "^8.5.8",
+                "source-map-js": "^1.2.1"
+            }
+        },
+        "@vue/compiler-ssr": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.30.tgz",
+            "integrity": "sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==",
+            "peer": true,
+            "requires": {
+                "@vue/compiler-dom": "3.5.30",
+                "@vue/shared": "3.5.30"
+            }
+        },
         "@vue/devtools-api": {
         "@vue/devtools-api": {
             "version": "6.6.4",
             "version": "6.6.4",
             "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
             "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
             "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
             "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
         },
         },
+        "@vue/reactivity": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.30.tgz",
+            "integrity": "sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q==",
+            "peer": true,
+            "requires": {
+                "@vue/shared": "3.5.30"
+            }
+        },
+        "@vue/runtime-core": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.30.tgz",
+            "integrity": "sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg==",
+            "peer": true,
+            "requires": {
+                "@vue/reactivity": "3.5.30",
+                "@vue/shared": "3.5.30"
+            }
+        },
+        "@vue/runtime-dom": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.30.tgz",
+            "integrity": "sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw==",
+            "peer": true,
+            "requires": {
+                "@vue/reactivity": "3.5.30",
+                "@vue/runtime-core": "3.5.30",
+                "@vue/shared": "3.5.30",
+                "csstype": "^3.2.3"
+            }
+        },
+        "@vue/server-renderer": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.30.tgz",
+            "integrity": "sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ==",
+            "peer": true,
+            "requires": {
+                "@vue/compiler-ssr": "3.5.30",
+                "@vue/shared": "3.5.30"
+            }
+        },
+        "@vue/shared": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.30.tgz",
+            "integrity": "sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ==",
+            "peer": true
+        },
         "animate.css": {
         "animate.css": {
             "version": "3.7.2",
             "version": "3.7.2",
             "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-3.7.2.tgz",
             "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-3.7.2.tgz",
@@ -33,26 +548,95 @@
             "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
             "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
             "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
             "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
         },
         },
+        "csstype": {
+            "version": "3.2.3",
+            "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+            "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+            "peer": true
+        },
         "dayjs": {
         "dayjs": {
-            "version": "1.11.18",
-            "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz",
-            "integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA=="
+            "version": "1.11.19",
+            "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
+            "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="
+        },
+        "entities": {
+            "version": "7.0.1",
+            "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
+            "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
+            "peer": true
+        },
+        "estree-walker": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+            "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+            "peer": true
         },
         },
         "hls": {
         "hls": {
             "version": "0.0.1",
             "version": "0.0.1",
             "resolved": "https://registry.npmjs.org/hls/-/hls-0.0.1.tgz",
             "resolved": "https://registry.npmjs.org/hls/-/hls-0.0.1.tgz",
             "integrity": "sha512-ov6aIzckaDCdFFAeJbrmZYhAR0O7w+nDXh3fz9XEcf8P6EercldLht/23JHRFXmAMtvKw8dzuOCafzktdV1AZw=="
             "integrity": "sha512-ov6aIzckaDCdFFAeJbrmZYhAR0O7w+nDXh3fz9XEcf8P6EercldLht/23JHRFXmAMtvKw8dzuOCafzktdV1AZw=="
         },
         },
+        "magic-string": {
+            "version": "0.30.21",
+            "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+            "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+            "peer": true,
+            "requires": {
+                "@jridgewell/sourcemap-codec": "^1.5.5"
+            }
+        },
         "mime": {
         "mime": {
             "version": "2.6.0",
             "version": "2.6.0",
             "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
             "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
             "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="
             "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="
         },
         },
+        "nanoid": {
+            "version": "3.3.11",
+            "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+            "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+            "peer": true
+        },
+        "picocolors": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+            "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+            "peer": true
+        },
+        "postcss": {
+            "version": "8.5.8",
+            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+            "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
+            "peer": true,
+            "requires": {
+                "nanoid": "^3.3.11",
+                "picocolors": "^1.1.1",
+                "source-map-js": "^1.2.1"
+            }
+        },
+        "source-map-js": {
+            "version": "1.2.1",
+            "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+            "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+            "peer": true
+        },
         "tim-wx-sdk": {
         "tim-wx-sdk": {
             "version": "2.18.0",
             "version": "2.18.0",
             "resolved": "https://registry.npmjs.org/tim-wx-sdk/-/tim-wx-sdk-2.18.0.tgz",
             "resolved": "https://registry.npmjs.org/tim-wx-sdk/-/tim-wx-sdk-2.18.0.tgz",
             "integrity": "sha512-Dz6aHpaCdk1ST/ZzltliSFHBsB5CdFU+q2NpFZc9PV8br0a5F2GyYgrdLn1Yqt8YntEwMReaud3LUY638zNJug=="
             "integrity": "sha512-Dz6aHpaCdk1ST/ZzltliSFHBsB5CdFU+q2NpFZc9PV8br0a5F2GyYgrdLn1Yqt8YntEwMReaud3LUY638zNJug=="
         },
         },
+        "vue": {
+            "version": "3.5.30",
+            "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.30.tgz",
+            "integrity": "sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg==",
+            "peer": true,
+            "requires": {
+                "@vue/compiler-dom": "3.5.30",
+                "@vue/compiler-sfc": "3.5.30",
+                "@vue/runtime-dom": "3.5.30",
+                "@vue/server-renderer": "3.5.30",
+                "@vue/shared": "3.5.30"
+            }
+        },
         "vuex": {
         "vuex": {
             "version": "4.1.0",
             "version": "4.1.0",
             "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz",
             "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz",
@@ -64,7 +648,8 @@
         "ws": {
         "ws": {
             "version": "8.19.0",
             "version": "8.19.0",
             "resolved": "https://registry.npmmirror.com/ws/-/ws-8.19.0.tgz",
             "resolved": "https://registry.npmmirror.com/ws/-/ws-8.19.0.tgz",
-            "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg=="
+            "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
+            "requires": {}
         },
         },
         "xmldom": {
         "xmldom": {
             "version": "0.1.31",
             "version": "0.1.31",

+ 1 - 1
package.json

@@ -8,7 +8,7 @@
         "cos-wx-sdk-v5": "^1.0.10",
         "cos-wx-sdk-v5": "^1.0.10",
         "crypto": "^1.0.1",
         "crypto": "^1.0.1",
         "crypto-js": "^4.2.0",
         "crypto-js": "^4.2.0",
-        "dayjs": "^1.11.18",
+        "dayjs": "^1.11.19",
         "hls": "0.0.1",
         "hls": "0.0.1",
         "tim-wx-sdk": "^2.17.0",
         "tim-wx-sdk": "^2.17.0",
         "vuex": "^4.1.0",
         "vuex": "^4.1.0",

+ 5 - 1
pages/home/index.vue

@@ -79,8 +79,12 @@
 					<image src="https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20250320/f2d3ba32a9344dc79b4df7c228189243.png" mode=""></image>
 					<image src="https://hos-1309931967.cos.ap-chongqing.myqcloud.com/fs/20250320/f2d3ba32a9344dc79b4df7c228189243.png" mode=""></image>
 				</view> -->
 				</view> -->
 			</view>
 			</view>
-			<view class="item"  @click="navTo('/pages_course/livingList')">
+			<!-- <view class="item"  @click="navTo('/pages_course/livingList')">
 				<image class="bg-img" src="/static/images/banner2.png" mode=""></image>
 				<image class="bg-img" src="/static/images/banner2.png" mode=""></image>
+			</view> -->
+			
+			<view class="item"  @click="navTo('/pages/home/productList')">
+				<image class="bg-img" src="/static/images/banner3.png" mode=""></image>
 			</view>
 			</view>
 		</view>
 		</view>
 		<view class="index-cont">
 		<view class="index-cont">

+ 64 - 78
pages_course/components/liveVideo.vue

@@ -4,10 +4,10 @@
 		<view class="videolist" v-if="liveItem.status == 2" :class="isFullscreen ? 'screen' : ''">
 		<view class="videolist" v-if="liveItem.status == 2" :class="isFullscreen ? 'screen' : ''">
 			<view class="video" :class="{'video_row': liveItem.showType == 1,'fullscreen-mode': isFullscreen}">
 			<view class="video" :class="{'video_row': liveItem.showType == 1,'fullscreen-mode': isFullscreen}">
 				<!-- 直播 -->
 				<!-- 直播 -->
-				<live-player v-if="liveItem.livingUrl && liveItem.liveType == 1" :id="'myLivePlayer_' + liveId"
+				<!-- <live-player v-if="liveItem.livingUrl && liveItem.liveType == 1" :id="'myLivePlayer_' + liveId"
 					:src="liveItem.livingUrl" autoplay mode="live" object-fit="cover" :muted="false"
 					:src="liveItem.livingUrl" autoplay mode="live" object-fit="cover" :muted="false"
 					orientation="vertical" :enable-play-gesture="false" min-cache="1" max-cache="3"
 					orientation="vertical" :enable-play-gesture="false" min-cache="1" max-cache="3"
-					@statechange="onLiveStateChange" @error="onLiveError" class="item"></live-player>
+					@statechange="onLiveStateChange" @error="onLiveError" class="item"></live-player> -->
 
 
 				<!-- 录播 -->
 				<!-- 录播 -->
 				<video v-if="liveItem.videoUrl && liveItem.liveType == 2" :id="`myVideo_${liveId}`" :autoplay="true"
 				<video v-if="liveItem.videoUrl && liveItem.liveType == 2" :id="`myVideo_${liveId}`" :autoplay="true"
@@ -144,7 +144,7 @@
 		},
 		},
 		data() {
 		data() {
 			return {
 			return {
-					videoLoaded: false, // 视频是否加载成功
+				videoLoaded: false, // 视频是否加载成功
 				isManualPause: false, // 是否手动暂停
 				isManualPause: false, // 是否手动暂停
 				waitingTimer: null, // 视频等待定时器
 				waitingTimer: null, // 视频等待定时器
 				waitingStartTime: 0, // 视频等待开始时间
 				waitingStartTime: 0, // 视频等待开始时间
@@ -152,7 +152,7 @@
 				trafficStartTime: 0, // 流量计算开始时间
 				trafficStartTime: 0, // 流量计算开始时间
 				liveBeginWatchTime: 0, //开始观看的时间点 不包含预告
 				liveBeginWatchTime: 0, //开始观看的时间点 不包含预告
 
 
-				
+
 				// hasSubscribed: false, // 已成功订阅(永久禁用)
 				// hasSubscribed: false, // 已成功订阅(永久禁用)
 				isFullscreen: false,
 				isFullscreen: false,
 				isVideoRotated: false,
 				isVideoRotated: false,
@@ -413,7 +413,7 @@
 				try {
 				try {
 					// 检查网络状态
 					// 检查网络状态
 					this.checkNetworkStatus();
 					this.checkNetworkStatus();
-					
+
 					// 鸿蒙系统特殊处理:如果已经标记为需要使用 video 组件
 					// 鸿蒙系统特殊处理:如果已经标记为需要使用 video 组件
 					if (this.isHarmonyOS && this.useVideoComponentInstead) {
 					if (this.isHarmonyOS && this.useVideoComponentInstead) {
 						console.log('鸿蒙系统使用 video 组件播放视频');
 						console.log('鸿蒙系统使用 video 组件播放视频');
@@ -428,25 +428,26 @@
 						}
 						}
 						return;
 						return;
 					}
 					}
-					
+
 					// 直播流使用live-player
 					// 直播流使用live-player
-					if (this.liveItem.liveType === 1 && this.liveItem.livingUrl && this.liveItem.status == 2) {
-						const livePlayerId = `myLivePlayer_${this.liveId}`;
-						const livePlayerContext = uni.createLivePlayerContext(livePlayerId, this);
-						if (livePlayerContext) {
-							if (this.isHarmonyOS) {
-								console.log('鸿蒙系统播放直播');
-								console.log('直播流URL:', this.liveItem.livingUrl);
-								console.log('直播ID:', this.liveId);
-								// 鸿蒙系统特殊处理:延迟播放并添加重试机制
-								setTimeout(() => {
-									this.harmonyOSLivePlay(livePlayerContext, 0);
-								}, 500);
-							} else {
-								livePlayerContext.play();
-							}
-						}
-					} else if (this.liveItem.status == 1 && this.liveItem.previewUrl) {
+					// if (this.liveItem.liveType === 1 && this.liveItem.livingUrl && this.liveItem.status == 2) {
+					// 	const livePlayerId = `myLivePlayer_${this.liveId}`;
+					// 	const livePlayerContext = uni.createLivePlayerContext(livePlayerId, this);
+					// 	if (livePlayerContext) {
+					// 		if (this.isHarmonyOS) {
+					// 			console.log('鸿蒙系统播放直播');
+					// 			console.log('直播流URL:', this.liveItem.livingUrl);
+					// 			console.log('直播ID:', this.liveId);
+					// 			// 鸿蒙系统特殊处理:延迟播放并添加重试机制
+					// 			setTimeout(() => {
+					// 				this.harmonyOSLivePlay(livePlayerContext, 0);
+					// 			}, 500);
+					// 		} else {
+					// 			livePlayerContext.play();
+					// 		}
+					// 	}
+					// } else 
+					if (this.liveItem.status == 1 && this.liveItem.previewUrl) {
 						const videoId = `myVideo_${this.liveId}`;
 						const videoId = `myVideo_${this.liveId}`;
 						const videoContext = uni.createVideoContext(videoId, this);
 						const videoContext = uni.createVideoContext(videoId, this);
 
 
@@ -464,57 +465,40 @@
 						// 检查是否为HLS格式的视频流
 						// 检查是否为HLS格式的视频流
 						const isHLS = this.liveItem.videoUrl.toLowerCase().endsWith('.m3u8');
 						const isHLS = this.liveItem.videoUrl.toLowerCase().endsWith('.m3u8');
 						console.log('视频URL:', this.liveItem.videoUrl, '是否为HLS格式:', isHLS);
 						console.log('视频URL:', this.liveItem.videoUrl, '是否为HLS格式:', isHLS);
-						
-						if (isHLS && !this.isHarmonyOS) {
-							// 非鸿蒙系统:HLS格式使用live-player播放
-							const livePlayerId = `myLivePlayer_${this.liveId}`;
-							const livePlayerContext = uni.createLivePlayerContext(livePlayerId, this);
-							if (livePlayerContext) {
-								livePlayerContext.play();
-							}
-						} else {
-							// 鸿蒙系统或普通视频格式:使用video组件播放
-							const videoId = `myVideo_${this.liveId}`;
-							const videoContext = uni.createVideoContext(videoId, this);
-							if (videoContext) {
-								if (this.isHarmonyOS) {
-									// 鸿蒙系统特殊处理:延迟播放
-									setTimeout(() => {
-										console.log('鸿蒙系统执行 video 组件播放');
-										videoContext.play();
-									}, 500);
-								} else {
+
+						// 鸿蒙系统或普通视频格式:使用video组件播放
+						const videoId = `myVideo_${this.liveId}`;
+						const videoContext = uni.createVideoContext(videoId, this);
+						if (videoContext) {
+							if (this.isHarmonyOS) {
+								// 鸿蒙系统特殊处理:延迟播放
+								setTimeout(() => {
+									console.log('鸿蒙系统执行 video 组件播放');
 									videoContext.play();
 									videoContext.play();
-								}
+								}, 500);
+							} else {
+								videoContext.play();
 							}
 							}
+
 						}
 						}
 					} // 回放视频使用video
 					} // 回放视频使用video
 					else if (this.liveItem.liveType === 3 && this.liveItem.videoUrl && this.liveItem.status == 4) {
 					else if (this.liveItem.liveType === 3 && this.liveItem.videoUrl && this.liveItem.status == 4) {
 						// 检查是否为HLS格式的视频流
 						// 检查是否为HLS格式的视频流
 						const isHLS = this.liveItem.videoUrl.toLowerCase().endsWith('.m3u8');
 						const isHLS = this.liveItem.videoUrl.toLowerCase().endsWith('.m3u8');
 						console.log('回放视频URL:', this.liveItem.videoUrl, '是否为HLS格式:', isHLS);
 						console.log('回放视频URL:', this.liveItem.videoUrl, '是否为HLS格式:', isHLS);
-						
-						if (isHLS && !this.isHarmonyOS) {
-							// 非鸿蒙系统:HLS格式使用live-player播放
-							const livePlayerId = `myLivePlayer_${this.liveId}`;
-							const livePlayerContext = uni.createLivePlayerContext(livePlayerId, this);
-							if (livePlayerContext) {
-								livePlayerContext.play();
-							}
-						} else {
-							// 鸿蒙系统或普通视频格式:使用video组件播放
-							const videoId = `myVideo_${this.liveId}`;
-							const videoContext = uni.createVideoContext(videoId, this);
-							if (videoContext) {
-								if (this.isHarmonyOS) {
-									// 鸿蒙系统特殊处理:延迟播放
-									setTimeout(() => {
-										console.log('鸿蒙系统执行 video 组件播放');
-										videoContext.play();
-									}, 500);
-								} else {
+
+						// 鸿蒙系统或普通视频格式:使用video组件播放
+						const videoId = `myVideo_${this.liveId}`;
+						const videoContext = uni.createVideoContext(videoId, this);
+						if (videoContext) {
+							if (this.isHarmonyOS) {
+								// 鸿蒙系统特殊处理:延迟播放
+								setTimeout(() => {
+									console.log('鸿蒙系统执行 video 组件播放');
 									videoContext.play();
 									videoContext.play();
-								}
+								}, 500);
+							} else {
+								videoContext.play();
 							}
 							}
 						}
 						}
 					}
 					}
@@ -543,13 +527,14 @@
 							videoContext.pause();
 							videoContext.pause();
 						}
 						}
 					} else if (this.liveItem.status == 2) {
 					} else if (this.liveItem.status == 2) {
-						if (this.liveItem.liveType === 1) {
-							const livePlayerId = `myLivePlayer_${this.liveId}`;
-							const livePlayerContext = uni.createLivePlayerContext(livePlayerId, this);
-							if (livePlayerContext) {
-								livePlayerContext.pause();
-							}
-						} else if (this.liveItem.liveType === 2) {
+						// if (this.liveItem.liveType === 1) {
+						// 	const livePlayerId = `myLivePlayer_${this.liveId}`;
+						// 	const livePlayerContext = uni.createLivePlayerContext(livePlayerId, this);
+						// 	if (livePlayerContext) {
+						// 		livePlayerContext.pause();
+						// 	}
+						// } else
+						if (this.liveItem.liveType === 2) {
 							const videoId = `myVideo_${this.liveId}`;
 							const videoId = `myVideo_${this.liveId}`;
 							const videoContext = uni.createVideoContext(videoId, this);
 							const videoContext = uni.createVideoContext(videoId, this);
 							if (videoContext) {
 							if (videoContext) {
@@ -720,9 +705,9 @@
 					param.videoType = this.liveItem.previewVideoType || '';
 					param.videoType = this.liveItem.previewVideoType || '';
 					param.videoId = this.liveItem.previewVideoId || '';
 					param.videoId = this.liveItem.previewVideoId || '';
 				}
 				}
-				if (this.liveItem.liveType == 1) {
-					param.bufferRate = this.totalTraffic;
-				}
+				// if (this.liveItem.liveType == 1) {
+				// 	param.bufferRate = this.totalTraffic;
+				// }
 				internetTraffic(param);
 				internetTraffic(param);
 			},
 			},
 			saveVideoProgress() {
 			saveVideoProgress() {
@@ -852,7 +837,7 @@
 				if (Math.floor(this.videoCurrentTime) % 10 === 0) {
 				if (Math.floor(this.videoCurrentTime) % 10 === 0) {
 					this.saveVideoProgress();
 					this.saveVideoProgress();
 				}
 				}
-	// 更新视频最后更新时间(用于检测是否卡顿)
+				// 更新视频最后更新时间(用于检测是否卡顿)
 				this.lastVideoUpdateTime = Date.now();
 				this.lastVideoUpdateTime = Date.now();
 				// 如果视频在更新,说明没有卡顿,清除等待状态
 				// 如果视频在更新,说明没有卡顿,清除等待状态
 				if (this.waitingStartTime && this.lastVideoUpdateTime - this.waitingStartTime < 1000) {
 				if (this.waitingStartTime && this.lastVideoUpdateTime - this.waitingStartTime < 1000) {
@@ -908,7 +893,7 @@
 
 
 				this.startTimer();
 				this.startTimer();
 				this.hasInitialized = true;
 				this.hasInitialized = true;
-				
+
 				// 鸿蒙系统额外UI更新
 				// 鸿蒙系统额外UI更新
 				if (this.isHarmonyOS) {
 				if (this.isHarmonyOS) {
 					console.log('鸿蒙系统组件初始化完成 - 额外UI更新');
 					console.log('鸿蒙系统组件初始化完成 - 额外UI更新');
@@ -1356,7 +1341,8 @@
 			.action-button {
 			.action-button {
 				width: 280rpx;
 				width: 280rpx;
 				height: 72rpx;
 				height: 72rpx;
-				display: flex;align-items: center;
+				display: flex;
+				align-items: center;
 				justify-content: center;
 				justify-content: center;
 				border-radius: 36rpx;
 				border-radius: 36rpx;
 				color: #fff;
 				color: #fff;

BIN
static/images/banner3.png