Browse Source

update code

yb 1 month ago
parent
commit
22303a9c7d
2 changed files with 13 additions and 7 deletions
  1. 1 1
      package-lock.json
  2. 12 6
      src/api/cloudflare-stream.ts

+ 1 - 1
package-lock.json

@@ -1420,7 +1420,7 @@
     },
     "node_modules/@vue/tsconfig": {
       "version": "0.8.1",
-      "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.8.1.tgz",
+      "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.8.1.tgz",
       "integrity": "sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g==",
       "dev": true,
       "license": "MIT",

+ 12 - 6
src/api/cloudflare-stream.ts

@@ -119,7 +119,7 @@ class CloudflareStreamApi {
   /**
    * 裁剪视频
    */
-  async clipVideo(videoId: string, params: {
+  async clipVideo(params: {
     clippedFromVideoUID: string
     startTimeSeconds: number
     endTimeSeconds: number
@@ -139,11 +139,17 @@ class CloudflareStreamApi {
 
   /**
    * 使用 TUS 协议上传视频
-   * 注意:大文件上传建议使用 tus-js-client 库
+   * 注意:需要先安装 tus-js-client:npm install tus-js-client
    */
   async uploadWithTus(file: File, uploadUrl: string, onProgress?: (progress: number) => void): Promise<void> {
-    // 动态导入 tus-js-client
-    const { Upload } = await import('tus-js-client')
+    // 动态导入 tus-js-client(需要先安装:npm install tus-js-client)
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
+    const tusClient = await import('tus-js-client' as any) as any
+    const Upload = tusClient.Upload || tusClient.default?.Upload
+
+    if (!Upload) {
+      throw new Error('tus-js-client not installed. Run: npm install tus-js-client')
+    }
 
     return new Promise((resolve, reject) => {
       const upload = new Upload(file, {
@@ -153,11 +159,11 @@ class CloudflareStreamApi {
           filename: file.name,
           filetype: file.type
         },
-        onError: (error) => {
+        onError: (error: Error) => {
           console.error('Upload failed:', error)
           reject(error)
         },
-        onProgress: (bytesUploaded, bytesTotal) => {
+        onProgress: (bytesUploaded: number, bytesTotal: number) => {
           const percentage = Math.round((bytesUploaded / bytesTotal) * 100)
           onProgress?.(percentage)
         },