lzc-video-player 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/.dockerignore +1 -0
  2. package/.eslintrc.cjs +18 -0
  3. package/.prettierrc.json +5 -0
  4. package/AGENTS.md +31 -0
  5. package/README.md +38 -0
  6. package/build.sh +10 -0
  7. package/demo/.vscode/extensions.json +3 -0
  8. package/demo/README.md +40 -0
  9. package/demo/env.d.ts +1 -0
  10. package/demo/index.html +13 -0
  11. package/demo/package-lock.json +2037 -0
  12. package/demo/package.json +25 -0
  13. package/demo/public/favicon.ico +0 -0
  14. package/demo/src/App.vue +25 -0
  15. package/demo/src/assets/base.css +70 -0
  16. package/demo/src/assets/logo.svg +1 -0
  17. package/demo/src/assets/main.css +33 -0
  18. package/demo/src/main.ts +8 -0
  19. package/demo/tsconfig.config.json +8 -0
  20. package/demo/tsconfig.json +16 -0
  21. package/demo/vite.config.ts +14 -0
  22. package/docs/progress-bar-style-analysis.md +87 -0
  23. package/env.d.ts +1 -0
  24. package/error_pages/502.html.tpl +13 -0
  25. package/i18next-parser.config.mjs +147 -0
  26. package/index.html +54 -0
  27. package/lazycat.png +0 -0
  28. package/lib/README.md +48 -0
  29. package/lib/package.json +22 -0
  30. package/lzc-build.local.yml +65 -0
  31. package/lzc-build.yml +65 -0
  32. package/lzc-manifest.yml +53 -0
  33. package/makefile +15 -0
  34. package/package.json +69 -0
  35. package/postcss.config.js +6 -0
  36. package/public/512x512.png +0 -0
  37. package/public/favicon.ico +0 -0
  38. package/public/languages/en/translation.json +125 -0
  39. package/public/languages/zh/translation.json +125 -0
  40. package/public/libass-wasm/4.1.0/default.woff2 +0 -0
  41. package/public/libass-wasm/4.1.0/subtitles-octopus-worker-legacy.js +40 -0
  42. package/public/libass-wasm/4.1.0/subtitles-octopus-worker.js +1 -0
  43. package/public/libass-wasm/4.1.0/subtitles-octopus-worker.wasm +0 -0
  44. package/public/libass-wasm/4.1.0/subtitles-octopus.js +1680 -0
  45. package/public/square-128x128.png +0 -0
  46. package/public/square-256x256.png +0 -0
  47. package/public/square-512x512.png +0 -0
  48. package/src/App.vue +18 -0
  49. package/src/assets/base.scss +104 -0
  50. package/src/assets/cloud.png +0 -0
  51. package/src/assets/logo.svg +1 -0
  52. package/src/components/Dialog/index.vue +96 -0
  53. package/src/components/MultipleEdit/choose.vue +39 -0
  54. package/src/components/PlayList/index.vue +521 -0
  55. package/src/components/Spectrum/index.vue +58 -0
  56. package/src/components/Video/NativeVideoPlayer.vue +748 -0
  57. package/src/components/Video/README.md +3 -0
  58. package/src/components/Video/clientPlayer.ts +348 -0
  59. package/src/components/Video/components/LzcModal/components/simpleList.vue +57 -0
  60. package/src/components/Video/components/LzcModal/list.vue +52 -0
  61. package/src/components/Video/components/LzcModal/playrate.vue +45 -0
  62. package/src/components/Video/components/LzcModal/resolution.vue +117 -0
  63. package/src/components/Video/components/LzcModal/subtitle.vue +499 -0
  64. package/src/components/Video/components/LzcModal/useModal.ts +18 -0
  65. package/src/components/Video/components/LzcOverlay/SubtitleLayer.vue +321 -0
  66. package/src/components/Video/components/LzcOverlay/cast.vue +253 -0
  67. package/src/components/Video/components/LzcOverlay/casting.vue +205 -0
  68. package/src/components/Video/components/LzcOverlay/error.vue +103 -0
  69. package/src/components/Video/components/LzcOverlay/helper.ts +81 -0
  70. package/src/components/Video/components/LzcOverlay/index.vue +99 -0
  71. package/src/components/Video/components/LzcOverlay/playing.vue +496 -0
  72. package/src/components/Video/components/LzcOverlay/playingButtons.vue +122 -0
  73. package/src/components/Video/components/LzcOverlay/playingLayout.vue +287 -0
  74. package/src/components/Video/components/LzcOverlay/useCast.ts +235 -0
  75. package/src/components/Video/components/LzcOverlay/useCommon.ts +41 -0
  76. package/src/components/Video/components/LzcOverlay/useOctopusRenderer.ts +230 -0
  77. package/src/components/Video/components/LzcOverlay/useSubtitleRenderEngine.ts +79 -0
  78. package/src/components/Video/components/LzcOverlay/useSubtitleTrack.ts +139 -0
  79. package/src/components/Video/components/useLzcCommon.ts +16 -0
  80. package/src/components/Video/directPlay.ts +345 -0
  81. package/src/components/Video/getSubtitleInfo.ts +42 -0
  82. package/src/components/Video/native/EventEmitter.ts +62 -0
  83. package/src/components/Video/native/NativeControls.vue +510 -0
  84. package/src/components/Video/native/NativeModal.vue +133 -0
  85. package/src/components/Video/native/NativePlayer.ts +913 -0
  86. package/src/components/Video/native/NativePlayer.vue +53 -0
  87. package/src/components/Video/native/index.ts +9 -0
  88. package/src/components/Video/native/native-player.css +183 -0
  89. package/src/components/Video/native/playerKey.ts +5 -0
  90. package/src/components/Video/native/useNativeCastMiddleware.ts +50 -0
  91. package/src/components/Video/native/useNativePlayer.ts +3 -0
  92. package/src/components/Video/native/useNativePlayerFullscreen.ts +44 -0
  93. package/src/components/Video/native/useNativePlayerHistory.ts +69 -0
  94. package/src/components/Video/native/useNativePlayerModal.ts +68 -0
  95. package/src/components/Video/native/useNativePlayerPlaylist.ts +67 -0
  96. package/src/components/Video/native/useNativePlayerState.ts +225 -0
  97. package/src/components/Video/player.ts +99 -0
  98. package/src/components/Video/theme/index.scss +291 -0
  99. package/src/components/Video/theme/videojs.css +1797 -0
  100. package/src/components/Video/useSource.ts +1431 -0
  101. package/src/components/Video/useSubtitlePreference.ts +66 -0
  102. package/src/components/Video/useWebview.ts +79 -0
  103. package/src/components/Video/videoFrame.ts +58 -0
  104. package/src/env.d.ts +3 -0
  105. package/src/i18n/README.md +392 -0
  106. package/src/i18n/index.ts +49 -0
  107. package/src/icons/Video_Player.svg +69 -0
  108. package/src/icons/box.svg +15 -0
  109. package/src/icons/client.svg +17 -0
  110. package/src/icons/logo.svg +28 -0
  111. package/src/icons//344/270/212/344/270/200/344/270/252.svg +6 -0
  112. package/src/icons//344/270/213/344/270/200/344/270/252.svg +4 -0
  113. package/src/icons//344/272/256/345/272/246.svg +13 -0
  114. package/src/icons//345/200/215/351/200/237.svg +14 -0
  115. package/src/icons//345/205/250/345/261/217.svg +16 -0
  116. package/src/icons//345/205/250/351/200/211_/345/267/262/351/200/211/344/270/255.svg +16 -0
  117. package/src/icons//345/205/250/351/200/211_/346/234/252/351/200/211/344/270/255.svg +15 -0
  118. package/src/icons//345/205/263/351/227/255/345/244/232/351/200/211.svg +14 -0
  119. package/src/icons//345/205/263/351/227/255/346/212/225/345/261/217.svg +11 -0
  120. package/src/icons//345/233/236/346/224/266/347/253/231.svg +15 -0
  121. package/src/icons//345/244/261/346/225/210.svg +17 -0
  122. package/src/icons//346/207/222/347/214/253/346/222/255/346/224/276/345/231/250-icon.png +0 -0
  123. package/src/icons//346/207/222/347/214/253/346/222/255/346/224/276/345/231/250.png +0 -0
  124. package/src/icons//346/212/225/345/261/217.svg +11 -0
  125. package/src/icons//346/212/225/351/200/201/344/270/255.jpg +0 -0
  126. package/src/icons//346/212/225/351/200/201/344/270/255.svg +21 -0
  127. package/src/icons//346/222/255/346/224/276.svg +3 -0
  128. package/src/icons//346/232/202/345/201/234.svg +4 -0
  129. package/src/icons//346/232/202/346/227/240.svg +21 -0
  130. package/src/icons//346/233/264/345/244/232/346/223/215/344/275/234.svg +11 -0
  131. package/src/icons//347/224/265/350/247/206.svg +18 -0
  132. package/src/icons//347/247/273/345/212/250/347/253/257_/350/203/214/346/231/257.webp +0 -0
  133. package/src/icons//350/203/214/346/231/257.png +0 -0
  134. package/src/icons//350/277/224/345/233/236.svg +13 -0
  135. package/src/icons//350/277/233/345/205/245/345/205/250/345/261/217.svg +13 -0
  136. package/src/icons//351/200/200/345/207/272/345/205/250/345/261/217.svg +15 -0
  137. package/src/icons//351/200/211/346/213/251.svg +15 -0
  138. package/src/icons//351/237/263/351/207/217.svg +13 -0
  139. package/src/index.d.ts +9 -0
  140. package/src/lzc-video-player.scss +7 -0
  141. package/src/lzc-video-player.ts +6 -0
  142. package/src/main.ts +62 -0
  143. package/src/model.ts +77 -0
  144. package/src/quasar-variables.sass +10 -0
  145. package/src/router/index.ts +74 -0
  146. package/src/stores/pinia.ts +3 -0
  147. package/src/stores/playlist.ts +146 -0
  148. package/src/use/useKeyBind.ts +61 -0
  149. package/src/use/useMultipleEdit.ts +60 -0
  150. package/src/use/useSdk.ts +5 -0
  151. package/src/use/useSubtitle.ts +39 -0
  152. package/src/use/useUtils.ts +22 -0
  153. package/src/use/useVideoFrame.ts +60 -0
  154. package/src/views/Home.ts +99 -0
  155. package/src/views/mobile/Home.vue +246 -0
  156. package/src/views/mobile/Player.vue +141 -0
  157. package/tailwind.config.js +15 -0
  158. package/tsconfig.config.json +8 -0
  159. package/tsconfig.json +20 -0
  160. package/vite.config.lib.ts +88 -0
  161. package/vite.config.ts +122 -0
  162. package/vue-shim.d.ts +4 -0
package/lzc-build.yml ADDED
@@ -0,0 +1,65 @@
1
+ # 整个文件中,可以通过 ${var} 的方式,使用 manifest.yml 文件中定义的值
2
+
3
+ # buildscript
4
+ # - 可以为构建脚本的路径地址
5
+ # - 如果构建命令简单,也可以直接写 sh 的命令
6
+ buildscript: ./build.sh
7
+
8
+ # manifest: 指定 lpk 包的 manifest.yml 文件路径
9
+ # manifest: ./lzc-manifest.yml
10
+
11
+ # contentdir: 指定打包的内容,将会打包到 lpk 中
12
+ contentdir: ./build
13
+
14
+ # pkgout: lpk 包的输出路径
15
+ pkgout: ./lpk
16
+
17
+ # icon 指定 lpk 包 icon 的路径路径,如果不指定将会警告
18
+ # icon 仅仅允许 png 后缀的文件
19
+ icon: ./lazycat.png
20
+
21
+ # devshell 自定义应用的开发容器环境
22
+ # - routers 指定应用容器的访问路由
23
+
24
+ # devshell 没有指定 image 的情况,将会默认使用 registry.lazycat.cloud/lzc-cli/devshell:latest
25
+ # devshell:
26
+ # routers:
27
+ # - /=http://127.0.0.1:8080
28
+
29
+ # devshell 指定 image 的情况
30
+ # devshell:
31
+ # routes:
32
+ # - /=http://127.0.0.1:3000
33
+ # image: registry.lazycat.cloud/lzc-cli/devshell:v0.0.4
34
+
35
+ # devshell 指定构建Dockerfile
36
+ # image 字段如果没有定义,将默认使用 ${package}-devshell:${version}
37
+ # devshell:
38
+ # routes:
39
+ # - /=http://127.0.0.1:3000
40
+ # image: ${package}-devshell:${version}
41
+ # pull_policy: build
42
+ # build: .
43
+
44
+ # dvshell 指定开发依赖的情况
45
+ # 这种情况下,选用 apline:3.16 作为基础镜像,在 dependencies 中添加所需要的开发依赖即可
46
+ # 如果 dependencies 和 build 同时存在,将会优先使用 dependencies
47
+ devshell:
48
+ routes:
49
+ - /=http://127.0.0.1:5173/
50
+ image: registry.lazycat.cloud/lzc-cli/devshell:v0.0.5
51
+ # setupscript 每次进入到app container后都会执行的配置脚本
52
+ # - 可以为脚本的路径地址
53
+ # - 如果构建命令简单,也可以直接写 sh 的命令
54
+ # setupscript: export GOPROXY=https://goproxy.cn
55
+ # setupscript: ./setupscript.sh
56
+ dependencies:
57
+ - nodejs
58
+ - vim
59
+ - npm
60
+ - git
61
+ setupscript: |
62
+ export GOPROXY=https://goproxy.cn
63
+ export npm_config_registry=https://registry.npmmirror.com
64
+ export PATH=/root/go/bin:$PATH
65
+ # go install github.com/go-delve/delve/cmd/dlv@latest
@@ -0,0 +1,53 @@
1
+ lzc-sdk-version: v0.2.3-1120-g5682ee4d
2
+ package: cloud.lazycat.app.video
3
+ version: 1.2.1
4
+ name: 视频播放器
5
+ description: 懒猫微服播放器
6
+ license: https://choosealicense.com/licenses/mit/
7
+ homepage: https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.video
8
+ author: leiluhua@linakesi.com
9
+ locales:
10
+ zh:
11
+ name: 视频播放器
12
+ description: 懒猫微服播放器
13
+ zh_CN:
14
+ name: 视频播放器
15
+ description: 懒猫微服播放器
16
+ en:
17
+ name: Video Player
18
+ description: Lazycat MicroServer Video Player
19
+ application:
20
+ subdomain: video
21
+ gpu_accel: true
22
+ file_handler:
23
+ mime:
24
+ - video/mp4
25
+ - application/x-mpegURL
26
+ - video/x-matroska
27
+ - video/mp2t
28
+ - video/mj2
29
+ - video/x-nsv
30
+ - video/vnd.mpegurl
31
+ - video/vnd.rn-realvideo
32
+ - video/vnd.avi
33
+ - video/3gpp
34
+ - video/x-mng
35
+ - video/mj2
36
+ - video/mpeg
37
+ - video/x-sgi-movie
38
+ - video/webm
39
+ - video/vnd.vivo
40
+ - video/x-matroska-3d
41
+ - video/quicktime
42
+ - video/x-flv
43
+ actions:
44
+ open: /open?url=%u
45
+ routes:
46
+ - /=file:///lzcapp/pkg/content/dist
47
+ handlers:
48
+ error_page_templates:
49
+ "502": /lzcapp/pkg/content/502.html.tpl
50
+ ext_config:
51
+ enable_document_access: true
52
+ enable_media_access: true
53
+ disable_grpc_web_on_root: true
package/makefile ADDED
@@ -0,0 +1,15 @@
1
+ .PHONY: build
2
+ inbox:
3
+ lzc-cli project devshell -f
4
+ # 本命令目标只在盒子内运行(进入盒子后,同步目录执行)
5
+ # 可同时启动前后端服务,可实时查看前后台日志
6
+ .PHONY: dev
7
+ dev: p1=["sh", "-c", "cd backend && go run ."]
8
+ dev: p2=["sh", "-c", "cd ui && exec npm run dev"]
9
+ dev:
10
+ @echo 'import subprocess; [p.wait() for p in subprocess.Popen(${p1}),subprocess.Popen(${p2})]' | python2
11
+
12
+ .PHONY: build
13
+ build:
14
+ # python update_version.py $(YAML_FILE)
15
+ lzc-cli project build -f
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "lzc-video-player",
3
+ "version": "0.0.0",
4
+ "scripts": {
5
+ "dev": "vite --host",
6
+ "build": "run-p type-check build-only",
7
+ "preview": "vite preview --port 4173",
8
+ "build-only": "vite build",
9
+ "build-lib": "vite build -c vite.config.lib.ts",
10
+ "type-check": "vue-tsc --noEmit",
11
+ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
12
+ "i18n:parser": "i18next -c i18next-parser.config.mjs"
13
+ },
14
+ "type": "module",
15
+ "dependencies": {
16
+ "@lazycatcloud/lzc-file-pickers": "^2.0.15",
17
+ "@lazycatcloud/lzc-toolkit": "^0.0.191",
18
+ "@lazycatcloud/minidb": "^0.0.10",
19
+ "@lazycatcloud/sdk": "^0.1.534",
20
+ "@lazycatcloud/webdav": "^4.8.0",
21
+ "@quasar/extras": "^1.15.5",
22
+ "@types/path-browserify": "^1.0.3",
23
+ "@vueuse/core": "^11.0.3",
24
+ "hls.js": "^1.6.2",
25
+ "i18next": "^22.5.1",
26
+ "i18next-browser-languagedetector": "^8.0.2",
27
+ "i18next-http-backend": "^3.0.1",
28
+ "i18next-vue": "^2.0.0",
29
+ "libass-wasm": "^4.1.0",
30
+ "lodash.debounce": "^4.0.8",
31
+ "lodash.throttle": "^4.1.1",
32
+ "path-browserify": "^1.0.1",
33
+ "pinia": "^2.0.23",
34
+ "quasar": "^2.10.2",
35
+ "vue": "^3.2.38",
36
+ "vue-router": "^4.1.5",
37
+ "webdav": "^4.11.2"
38
+ },
39
+ "devDependencies": {
40
+ "@lazycatcloud/i18next-parser": "^9.0.11",
41
+ "@quasar/vite-plugin": "^1.2.3",
42
+ "@rushstack/eslint-patch": "^1.1.4",
43
+ "@thedutchcoder/postcss-rem-to-px": "^0.0.2",
44
+ "@types/lodash.debounce": "^4.0.7",
45
+ "@types/lodash.throttle": "^4.1.7",
46
+ "@types/node": "^16.18.68",
47
+ "@vitejs/plugin-vue": "^3.0.3",
48
+ "@vue/eslint-config-prettier": "^7.0.0",
49
+ "@vue/eslint-config-typescript": "^11.0.0",
50
+ "@vue/tsconfig": "^0.1.3",
51
+ "autoprefixer": "^10.4.20",
52
+ "cross-env": "^7.0.3",
53
+ "eslint": "^8.22.0",
54
+ "eslint-plugin-vue": "^9.3.0",
55
+ "npm-run-all": "^4.1.5",
56
+ "postcss": "^8.4.30",
57
+ "prettier": "^2.7.1",
58
+ "sass": "^1.32.12",
59
+ "tailwindcss": "^3.4.17",
60
+ "typescript": "~4.7.4",
61
+ "unplugin-auto-import": "^0.19.0",
62
+ "vite": "^3.0.9",
63
+ "vite-plugin-css-injected-by-js": "^3.3.0",
64
+ "vite-plugin-dts": "^3.5.3",
65
+ "vite-plugin-pwa": "^0.14.4",
66
+ "vite-plugin-svg-icons": "^2.0.1",
67
+ "vue-tsc": "^0.40.7"
68
+ }
69
+ }
@@ -0,0 +1,6 @@
1
+ export default {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
Binary file
Binary file
@@ -0,0 +1,125 @@
1
+ {
2
+ "src": {
3
+ "components": {
4
+ "dialog": {
5
+ "index": {
6
+ "cancel": "Cancel",
7
+ "confirm": "Confirm"
8
+ }
9
+ },
10
+ "play_list": {
11
+ "index": {
12
+ "button_delete": "Delete {{selectedKeys}}",
13
+ "cancel_select_all": "Cancel All",
14
+ "delete_desc": "Does it delete the selected playback record?",
15
+ "delete_title": "Confirm deletion",
16
+ "edit": "Edit",
17
+ "expired": "expired",
18
+ "no_available_content": "No broadcast content at this time",
19
+ "play_list": "playlist",
20
+ "select": "please select",
21
+ "select_all": "Select All",
22
+ "watch_to": "Resume at: {{info}}%",
23
+ "watching": "Watching: {{ft}}"
24
+ }
25
+ },
26
+ "video": {
27
+ "components": {
28
+ "lzc_fullscreen_toggle": {
29
+ "exit_fullscreen": "Exit full screen",
30
+ "fullscreen": "full screen"
31
+ },
32
+ "lzc_modal": {
33
+ "play_rate": {
34
+ "toast_playback_rate": "{{rate}} is playing at double speed."
35
+ },
36
+ "resolution": {
37
+ "auto": "auto",
38
+ "raw": "original",
39
+ "switched_to": "Successfully switched to {{tips}} quality.",
40
+ "switching": "Switching. Please wait.",
41
+ "text_raw": "original"
42
+ },
43
+ "subtitle": {
44
+ "external": "External subtitles",
45
+ "hidden_subtitle": "Hide subtitles",
46
+ "internal": "Internal subtitles",
47
+ "loading": "Loading subtitles...",
48
+ "no_subtitle": "No subtitles available",
49
+ "subtitle_size": "Subtitle size",
50
+ "size_small": "Small",
51
+ "size_medium": "Medium",
52
+ "size_large": "Large"
53
+ }
54
+ },
55
+ "lzc_overlay": {
56
+ "cast": {
57
+ "film_delivery": "Cast Video",
58
+ "searching": "Searching for devices..."
59
+ },
60
+ "casting": {
61
+ "button_back_play": "Back to Play",
62
+ "screen_casting_failed": "Failed to cast the screen",
63
+ "screen_casting_tips_content": "You can perform other actions on your current device without affecting the playback of {{videoName}}.",
64
+ "text_casting": "delivering"
65
+ },
66
+ "error": {
67
+ "decode_failed_subtitle": "Supported video formats are: mp4, m3u8, mkv",
68
+ "decode_failed_title": "Video decoding failure",
69
+ "encrypted_video_title": "Encrypted video, no password decryption",
70
+ "file_not_exist_title": "Failed to load the video, probably because there is no access rights or the file no longer exists",
71
+ "paly_failed_title": "Playback fails, network error causes media download to fail in midstream",
72
+ "request_assets_over_title": "Requesting a resource cutoff. Please replay.",
73
+ "unknown_error_title": "unknown error"
74
+ },
75
+ "use_cast": {
76
+ "error_not_device": "No screen casting device selected",
77
+ "not_selected_device": "No equipment selected"
78
+ }
79
+ },
80
+ "lzc_play_rate": {
81
+ "speed_btn_text_1": "speed",
82
+ "speed_btn_text_2": "speed",
83
+ "speed_btn_text_3": "speed"
84
+ },
85
+ "lzc_playlist_button": {
86
+ "text_playlist": "playlist"
87
+ },
88
+ "lzc_resolution_button": {
89
+ "auto_quality_btn_text": "auto({{text}})",
90
+ "definition_btn_text_1": "quality",
91
+ "definition_btn_text_2": "quality",
92
+ "original_quality_btn_text": "original"
93
+ },
94
+ "lzc_sub_button": {
95
+ "text": "Subtitles"
96
+ }
97
+ },
98
+ "lzc_overlay": {
99
+ "playing": {
100
+ "play_btn_text": "Paused"
101
+ }
102
+ },
103
+ "video_frame": {
104
+ "not_exist_cover_image": "Can't find a usable cover image"
105
+ }
106
+ }
107
+ },
108
+ "stores": {
109
+ "playlist": {
110
+ "history_error_text": "Invalid video recordings",
111
+ "not_exist_error_text": "{{sourceUrl}} does not exist"
112
+ }
113
+ },
114
+ "views": {
115
+ "mobile": {
116
+ "home": {
117
+ "button_open_file": "Open file",
118
+ "button_playlist": "playlist",
119
+ "button_start_play": "Play",
120
+ "title_select_file": "Select a File"
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,125 @@
1
+ {
2
+ "src": {
3
+ "components": {
4
+ "dialog": {
5
+ "index": {
6
+ "cancel": "取消",
7
+ "confirm": "确定"
8
+ }
9
+ },
10
+ "play_list": {
11
+ "index": {
12
+ "button_delete": "删除{{selectedKeys}}",
13
+ "cancel_select_all": "取消全选",
14
+ "delete_desc": "是否删除已选中的播放记录?",
15
+ "delete_title": "确认删除",
16
+ "edit": "编辑",
17
+ "expired": "已失效",
18
+ "no_available_content": "暂无播放内容",
19
+ "play_list": "播放列表",
20
+ "select": "请选择",
21
+ "select_all": "全选",
22
+ "watch_to": "观看至: {{info}}%",
23
+ "watching": "正在观看:{{ft}}"
24
+ }
25
+ },
26
+ "video": {
27
+ "components": {
28
+ "lzc_fullscreen_toggle": {
29
+ "exit_fullscreen": "退出全屏",
30
+ "fullscreen": "全屏"
31
+ },
32
+ "lzc_modal": {
33
+ "play_rate": {
34
+ "toast_playback_rate": "{{rate}}倍速播放中"
35
+ },
36
+ "resolution": {
37
+ "auto": "自动",
38
+ "raw": "原始画质",
39
+ "switched_to": "已成功切换至 {{tips}} 清晰度",
40
+ "switching": "切换中,请稍等",
41
+ "text_raw": "原始画质"
42
+ },
43
+ "subtitle": {
44
+ "external": "外部字幕",
45
+ "hidden_subtitle": "隐藏字幕",
46
+ "internal": "内部字幕",
47
+ "loading": "加载字幕中...",
48
+ "no_subtitle": "无可选字幕",
49
+ "subtitle_size": "字幕大小",
50
+ "size_small": "小",
51
+ "size_medium": "中",
52
+ "size_large": "大"
53
+ }
54
+ },
55
+ "lzc_overlay": {
56
+ "cast": {
57
+ "film_delivery": "影片投送",
58
+ "searching": "正在搜索设备…"
59
+ },
60
+ "casting": {
61
+ "button_back_play": "返回播放",
62
+ "screen_casting_failed": "投屏失败",
63
+ "screen_casting_tips_content": "正在投送《{{videoName}}》,您可以在当前设备上进行其他操作,不会影响播放",
64
+ "text_casting": "投送中"
65
+ },
66
+ "error": {
67
+ "decode_failed_subtitle": "支持的视频格式有: mp4, m3u8, mkv",
68
+ "decode_failed_title": "视频解码失败",
69
+ "encrypted_video_title": "加密视频,没有密码解密",
70
+ "file_not_exist_title": "加载视频失败,可能是因为没有访问权限或者文件已经不存在",
71
+ "paly_failed_title": "播放失败,网络错误导致媒体下载中途失败",
72
+ "request_assets_over_title": "请求资源终断,请重新播放",
73
+ "unknown_error_title": "未知错误"
74
+ },
75
+ "use_cast": {
76
+ "error_not_device": "没有选择投屏设备",
77
+ "not_selected_device": "没有选择设备"
78
+ }
79
+ },
80
+ "lzc_play_rate": {
81
+ "speed_btn_text_1": "倍速",
82
+ "speed_btn_text_2": "倍速",
83
+ "speed_btn_text_3": "倍速"
84
+ },
85
+ "lzc_playlist_button": {
86
+ "text_playlist": "播放列表"
87
+ },
88
+ "lzc_resolution_button": {
89
+ "auto_quality_btn_text": "自动({{text}})",
90
+ "definition_btn_text_1": "清晰度",
91
+ "definition_btn_text_2": "清晰度",
92
+ "original_quality_btn_text": "原始画质"
93
+ },
94
+ "lzc_sub_button": {
95
+ "text": "字幕"
96
+ }
97
+ },
98
+ "lzc_overlay": {
99
+ "playing": {
100
+ "play_btn_text": "已暂停"
101
+ }
102
+ },
103
+ "video_frame": {
104
+ "not_exist_cover_image": "找不到可用的封面图片"
105
+ }
106
+ }
107
+ },
108
+ "stores": {
109
+ "playlist": {
110
+ "history_error_text": "无效的视频记录",
111
+ "not_exist_error_text": "{{sourceUrl}} 不存在"
112
+ }
113
+ },
114
+ "views": {
115
+ "mobile": {
116
+ "home": {
117
+ "button_open_file": "打开文件",
118
+ "button_playlist": "播放列表",
119
+ "button_start_play": "开始播放",
120
+ "title_select_file": "选择网盘文件"
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }