Compare commits

..
324 Commits
Author SHA1 Message Date
Harvey Zack f1fcbd75fe chore: Update change log, add removal of svg default fill color value and direct import optimization of Option 2025-08-03 19:48:34 +08:00
Harvey Zack 4fa1730242 Refactor SVG icons to remove fill attributes
- Updated arrow-left.svg, arrow-right.svg, check.svg, and loading.svg to remove fill attributes from path elements for better flexibility in styling.
- Modified aspect-ratio.svg and config.svg to maintain consistency in SVG structure by removing unnecessary fill attributes.
- Ensured playback-rate.svg retains its structure while removing fill attributes for improved styling options.
2025-08-03 19:43:28 +08:00
卡色 8460959a7f fix: cssVar can't be overwrite icon color (#945) 2025-08-03 19:35:20 +08:00
Harvey Zack d9c84d2dbc refactor: update type exports and improve type usage in tests 2025-08-03 18:57:40 +08:00
Harvey Zack 8a87de6df3 refactor: update export syntax to default for ASR and VAST plugins 2025-08-03 18:49:06 +08:00
Harvey Zack 6f3363014f refactor: update export syntax to default for ASR and VAST plugins 2025-08-03 18:47:09 +08:00
Harvey Zack fa755b5f61 refactor: update import statements to use node built-in modules
chore: update lerna configuration formatting

chore: bump version in package.json to 6.0.0

fix: modify build scripts for improved readability and consistency

feat: enhance translation scripts with better error handling and progress tracking

chore: improve plugin creation script for better user experience

style: format svgo configuration for consistency
2025-08-03 18:34:30 +08:00
Harvey Zack 3540cd0cce style:统一代码风格,移除多余分号 2025-08-03 18:23:42 +08:00
Harvey Zack e947be8a8e feat: add danmuku plugin documentation and i18n setup instructions
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive language settings documentation, including default languages, importing languages, adding new languages, and modifying existing languages.
- Updated the i18n setup examples to reflect the latest changes in language handling.
2025-08-03 18:21:59 +08:00
Harvey Zack 9d966bf696 refactor: update export syntax to default for multiple plugins and adjust package.json formatting 2025-08-03 17:19:12 +08:00
Harvey Zack f3c0a9a77d feat(danmuku): add unique identifier for danmuku items
- Introduced a new dataset attribute `data-id` to DOM elements for unique identification of danmuku items.
- Updated validation to include an optional `id` field for danmuku objects.
- Changed the property `$id` to `$index` for better clarity on its purpose as an index rather than a unique identifier.
- Ensured the `data-id` attribute is set for visibility control during hover interactions.
2025-08-03 14:32:26 +08:00
Harvey Zack 35ad9883af build all
Refactor utility functions for improved readability and consistency

- Updated compatibility.js to use consistent line endings and formatting.
- Refactored component.js for better readability and structure, including consistent use of arrow functions and binding.
- Simplified dom.js functions with consistent formatting and improved readability.
- Enhanced emitter.js with consistent formatting and arrow function usage.
- Streamlined error.js for improved readability and consistency.
- Refactored file.js to use consistent formatting and improved readability.
- Improved format.js functions for better readability and consistency.
- Updated index.js to maintain consistent export formatting.
- Refactored property.js for improved readability and consistency.
- Enhanced subtitle.js with consistent formatting and improved readability.
- Refactored time.js for better readability and consistent formatting.

fix: update lint script to target only source files for consistency

Revert "fix: restore export statements for various plugins and update type definitions for better clarity"

This reverts commit b5e969d81ec765cd8a34b06e6ef4f232ef25087f.

fix: restore export statements for various plugins and update type definitions for better clarity

Refactor type definitions to use interfaces instead of type aliases for better extensibility and clarity across i18n, icons, option, player, quality, setting, subtitle, template, and utils modules.
2025-08-03 13:17:33 +08:00
Harvey Zack 532dd67cfd Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2025-08-03 12:06:26 +08:00
Harvey Zack 46ad399b2f fix: add missing newline at end of multiple package.json files and README.md 2025-08-03 11:54:36 +08:00
Harvey Zack 05ce97c6fd Refactor event path handling to use getComposedPath utility
- Replaced direct usage of event.composedPath() with a new utility function getComposedPath in Control component.
- Updated includeFromEvent function to utilize getComposedPath for better compatibility.
- Implemented getComposedPath function to ensure consistent event path retrieval across different browsers.
2025-08-03 11:43:01 +08:00
Harvey Zhao 603151af84 Update README.md 2025-08-02 17:21:18 +08:00
Harvey Zack 412b8e7fa7 Update CHANGELOG_CN.md 2025-08-01 15:37:24 +08:00
Harvey Zack 8d912c6c99 chore: bump version to 5.2.5 and remove unused exports from package.json 2025-08-01 15:32:32 +08:00
Harvey Zack ea392e0d60 feat: update version to 5.1.7 and add custom userAgent documentation 2025-08-01 09:57:50 +08:00
Harvey Zack 5337f9b075 feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin, detailing its usage and providing code examples.
- Added a comprehensive guide for language settings (i18n), including instructions for importing languages, setting default languages, and modifying language options.
- Included code snippets for initializing the Artplayer with different languages and examples for adding new languages.
2025-08-01 09:34:07 +08:00
Harvey Zack c1fe0e2b03 Delete sitemap.xml 2025-07-06 15:02:25 +08:00
Harvey Zack 11b59da2cf Create sitemap.xml 2025-07-06 14:57:56 +08:00
Harvey Zack 9932551352 Create googlebcdef0d1e9238554.html 2025-07-06 14:45:47 +08:00
Harvey Zack 84bc5a85bc Refactor code structure for improved readability and maintainability 2025-07-05 16:04:21 +08:00
dependabot[bot] 6d640062c9 chore(deps): bump svgo from 3.3.2 to 4.0.0 (#984)
Bumps [svgo](https://github.com/svg/svgo) from 3.3.2 to 4.0.0.
- [Release notes](https://github.com/svg/svgo/releases)
- [Commits](https://github.com/svg/svgo/compare/v3.3.2...v4.0.0)

---
updated-dependencies:
- dependency-name: svgo
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-24 09:06:22 +08:00
Harvey Zack 012c73c202 refactor: simplify version function export in context menu 2025-06-20 11:08:57 +08:00
Harvey Zack e8a7e050c4 refactor: update version handling and remove placeholder injection
- Simplified version display in context menu and template by directly importing version from package.json.
- Removed static version and environment methods from Artplayer class, replacing them with dynamic imports.
- Eliminated placeholder injection logic from build and dev scripts, streamlining the build process.
- Cleaned up build and dev scripts for better readability and maintainability.
2025-06-20 11:04:29 +08:00
Harvey Zack e2e8e83e63 Refactor code structure for improved readability and maintainability 2025-06-20 10:26:07 +08:00
Harvey Zhao 1374d530a4 fix mini position restore and typo (#981) 2025-06-20 10:19:28 +08:00
Harvey Zack 7e7bd8c0ad Refactor version display in context menu and clean up versioning format
- Updated the context menu version function to dynamically append the application version to the link and include a ref parameter in the URL.
- Removed the build version log from the initialization logs in the Artplayer class.
- Cleaned up the version and environment getters to return unquoted strings.
2025-06-20 10:18:39 +08:00
Harvey Zack da94223721 bump version to 5.2.4 2025-06-20 10:00:27 +08:00
Harvey Zack 3715a36cde fix: correct spelling of "height" in icon HTML attributes across documentation 2025-06-20 09:56:18 +08:00
Harvey Zhao 68d00e0166 docs(en): fix typos and improve wording (#980) 2025-06-20 09:53:34 +08:00
Harvey Zack c81b1ec83b Update CHANGELOG_CN.md 2025-06-15 18:35:02 +08:00
Harvey Zack bf5a186375 fix: update config method to allow initialization flag
- Modified the config method to accept an initialization flag, allowing for configuration during the initial setup without triggering unnecessary updates.
- Updated the call to config in the constructor to pass the new initialization flag.
2025-06-15 18:15:48 +08:00
Harvey Zhao 20b62ad3e3 refactor(types): improve definitions (#971) 2025-06-13 20:38:14 +08:00
Harvey Zhao 1941da46d9 fix: correct typos in player modules (#970) 2025-06-13 20:31:54 +08:00
Harvey Zhao 078b595819 fix: correct typos in player modules (#969) 2025-06-13 20:31:27 +08:00
Harvey Zhao 169c6a318a docs: fix autoPlayback typo (#967) 2025-06-12 21:24:58 +08:00
Harvey Zhao 77eaba8de9 fix: correct siblings helper name (#966) 2025-06-12 21:17:56 +08:00
Harvey Zhao db58d759b5 Update README.md 2025-06-08 15:17:51 +08:00
Harvey Zack 1ae4d17372 Remove artplayer-proxy-webav package and its related files including package.json, index.js, and type definitions. 2025-05-31 17:08:31 +08:00
Harvey Zack e773e2c44f 更新 VAST 插件文档和类型定义,修复描述和版本号,增强广告播放器功能 2025-05-30 10:45:31 +08:00
Harvey Zack 19756e8224 Add volume change handling to ASR plugin
- Implemented an event listener for 'video:volumechange' to adjust the gain node's value based on the current volume of the artplayer instance.
- This enhancement ensures that the audio processing reflects the user's volume adjustments in real-time.
2025-05-25 11:37:06 +08:00
Harvey Zack 826abd8c7d Update index.html 2025-05-24 12:06:52 +08:00
Harvey Zack d02740bd94 Update asr.js 2025-05-24 10:50:27 +08:00
Harvey Zack 5602ac315c Update asr.js 2025-05-24 10:12:18 +08:00
Harvey Zack b2f88cdd94 Update asr.js 2025-05-23 14:28:42 +08:00
Harvey Zack 15067279e3 Update asr.js 2025-05-23 12:37:17 +08:00
Harvey Zack 0d0a6f5516 Update README.md 2025-05-23 10:32:24 +08:00
Harvey Zack 10337ddb1d feat: add WAV format support for audio chunks in artplayer-plugin-asr
- Implemented pcmToWav function to convert PCM audio data to WAV format.
- Updated onAudioChunk callback to receive both PCM and WAV buffers.
- Modified TypeScript definitions to reflect changes in onAudioChunk parameter and append method.
2025-05-23 10:23:27 +08:00
Harvey Zack 62835bb042 fix: add optional chaining for safe access to voice_text_str in ASR response 2025-05-23 10:12:29 +08:00
Harvey Zack 3f0a1bd433 Refactor ASR plugin options and improve audio processing
- Renamed `hideTimeout` to `autoHideTimeout` for clarity.
- Updated the default options destructuring for better readability.
- Removed unnecessary comments and cleaned up the audio processing logic.
- Ensured that the audio buffer is processed correctly before sending to the `onAudioChunk` callback.
2025-05-23 10:08:20 +08:00
Harvey Zack 1ece90c582 Refactor code structure for improved readability and maintainability 2025-05-23 09:58:16 +08:00
Harvey Zack 4bdad1675b fix: add stop method to AsrPluginInstance interface 2025-05-23 09:05:00 +08:00
Harvey Zack 9fdbdabd7c Update index.js 2025-05-23 00:32:08 +08:00
Harvey Zack 5d7710979d fix: rename cleanupTimeout to hideTimeout for consistency in ASR plugin
Refactor artplayerPluginAsr: Enhance audio capture and processing

- Introduced gainNode for audio output management.
- Added mediaStream and mediaStreamSource for fallback audio capture.
- Refactored startCapture and stopCapture functions for better clarity and error handling.
- Improved audio source setup with a dedicated function for capturing audio from video.
- Ensured proper disconnection of audio nodes and cleanup of resources on destroy.

feat: enhance ASR plugin with improved subtitle handling and styling

fix: rename autoClearTimer to hideTimer for consistency in ASR plugin

Update asr.js

feat: refactor ASR plugin to improve audio chunk handling and WebSocket management

Update asr.js

fix: rename autoClearTimeout to cleanupTimeout for consistency

Update asr.js

feat: refactor ASR handling and improve WebSocket management

Update index.js

feat: add append and clear functions to enhance audio chunk handling

Update asr.js

Update asr.js

feat: release version 2.0.0 of artplayer-plugin-asr

- Implemented core functionality for audio recording using AudioWorklet.
- Added support for configurable audio capture interval and sample rate.
- Introduced WAV encoding for recorded audio chunks.
- Created a new plugin structure with proper TypeScript definitions.
- Added legacy support for older environments.
- Updated package.json with necessary metadata and export configurations.
- Included comprehensive inline documentation for better maintainability.
2025-05-23 00:09:13 +08:00
Harvey Zack 6c4e9f7e78 fix: enhance user agent detection to support custom user agent 2025-05-17 22:16:08 +08:00
Harvey Zack dd57cc2a03 add sourceMap 2025-04-21 09:54:32 +08:00
Harvey Zack ab06749c15 remove sourceMap 2025-04-21 09:10:21 +08:00
Harvey Zack c3343ad74f Refactor code structure for improved readability and maintainability 2025-04-20 19:54:19 +08:00
Harvey Zack 2a7e3d5e03 add index.esm.html 2025-04-20 19:35:10 +08:00
Harvey Zack a64e13c9c1 fix: update translation API and increase character limit for requests 2025-04-20 14:10:17 +08:00
Harvey Zack 674c6420e9 Refactor progress event handling in progress.js
- Moved the 'video:progress' event listener to be consistent with the RAF and timeupdate events.
- Ensured 'setBar' for 'loaded' is emitted during both RAF and video:progress events.
- Cleaned up the structure for better readability and maintainability.
2025-04-20 11:21:21 +08:00
Harvey Zack 9bdaaa3b7d Update nodejs.yml 2025-04-20 10:15:56 +08:00
Harvey Zack 0aabb42db3 update deps 2025-04-20 10:12:14 +08:00
Harvey Zack 17ece4c0c8 Add Vietnamese localization for Artplayer 2025-04-20 09:55:38 +08:00
Suika 2aaef7db45 fix: correct type definition in Option (#936) 2025-04-12 11:02:33 +08:00
Thành Hoàng Trần bc401159b6 feat: Vietnamese language support added (#932) 2025-04-09 10:10:03 +08:00
Harvey Zack 36865f1e7e feat: 新增手势配置项,支持移动端手势事件 2025-03-22 11:55:09 +08:00
Leo Wangandlion dd0fba6eb4 feat: 新增配置项gesture,是否开启手势快进快退操作。 (#919)
Co-authored-by: lion <lion>
2025-03-22 11:46:05 +08:00
Harvey Zack db5e9fc810 更新 artplayer-plugin-auto-thumbnail.js 版本至 1.0.1 2025-03-01 17:46:57 +08:00
Harvey Zack 4987579d92 Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2025-03-01 17:45:58 +08:00
Harvey Zack b4e5c712f5 更新 artplayer-plugin-auto-thumbnail 版本至 1.0.1 2025-03-01 17:44:27 +08:00
dependabot[bot] 518bc45af0 chore(deps-dev): bump vitepress from 1.2.3 to 1.6.3 (#900)
Bumps [vitepress](https://github.com/vuejs/vitepress) from 1.2.3 to 1.6.3.
- [Release notes](https://github.com/vuejs/vitepress/releases)
- [Changelog](https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vitepress/compare/v1.2.3...v1.6.3)

---
updated-dependencies:
- dependency-name: vitepress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 09:36:45 +08:00
dependabot[bot] b52ea6b146 chore(deps): bump @webav/av-cliper from 0.16.5 to 1.0.17 (#907)
Bumps [@webav/av-cliper](https://github.com/bilibili/WebAV) from 0.16.5 to 1.0.17.
- [Changelog](https://github.com/bilibili/WebAV/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bilibili/WebAV/commits)

---
updated-dependencies:
- dependency-name: "@webav/av-cliper"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 09:36:33 +08:00
WeidiDeng ff10f4f0a6 swap notice and seek event (#899) 2025-02-02 17:27:51 +08:00
Jealous a8458b050b fix: cancel video loading after destroying (#883) 2025-01-24 14:54:02 +08:00
Harvey Zack 4b4973eeb3 chore: 更新版本至 5.1.6,修复样式加载失败问题并优化样式插入逻辑 2025-01-19 20:50:26 +08:00
Harvey Zack c89b9e7871 chore: 更新版本至 5.1.5,修复多个问题并增强移动端支持 2025-01-19 17:34:40 +08:00
Harvey Zack fae71811db feat: 添加对 Chromecast 状态和会话变化的监听支持 2025-01-19 14:28:03 +08:00
Harvey Zack e7c31e55b3 feat: 添加对移动设备的支持并优化滑块事件处理 2025-01-18 16:44:04 +08:00
Harvey Zack 38ef03d31f Update dom.js 2024-12-16 14:51:02 +08:00
Harvey Zack ad0395fa37 Update artplayer-plugin-danmuku.d.ts 2024-12-16 10:43:21 +08:00
Harvey Zack 58b7eeb6e6 Update danmuku.md 2024-12-15 21:56:31 +08:00
Harvey Zack 9f4e6c3a1b chore: 将 artplayer-plugin-ambilight 的选项属性改为可选 2024-12-07 18:08:04 +08:00
Harvey Zack eb8cc22bf2 Update common.js 2024-11-30 10:42:28 +08:00
Harvey Zack 3a052a60e3 chore: 删除不再使用的 TypeScript 声明文件,并添加新的插件声明文件 2024-11-30 10:35:41 +08:00
Harvey Zack 57d6f25e5b Update main.js 2024-11-26 10:06:29 +08:00
Harvey Zack 13d4fc9210 chore: 更新 hls.js 版本至 1.5.17 2024-11-24 22:11:12 +08:00
Harvey Zhao 38054536ed Update index.js 2024-11-16 21:46:51 +08:00
Harvey Zhao 07de29c304 Update index.js 2024-11-12 23:26:28 +08:00
Harvey Zack f685e1a7db chore: 更新版本号至 5.2.2,并移除图片加载中的跨域设置 2024-10-28 15:53:26 +08:00
Harvey Zack 625f96534b docs: 添加 proxy 选项说明,支持代理现有的 video DOM 元素 2024-10-27 11:50:01 +08:00
Harvey Zack d3c66d8c44 Update index.js 2024-10-26 22:12:15 +08:00
Harvey Zack d33d59720f chore: 更新 CHANGELOG,新增 artplayer-plugin-dash-control 插件并修复相关问题 2024-10-26 15:54:31 +08:00
Harvey Zack 5e8047e33b Merge remote-tracking branch 'origin/artplayer-plugin-dash-control' 2024-10-26 15:26:14 +08:00
dependabot[bot] a7c45588fb chore(deps): bump @webav/av-cliper from 0.14.15 to 0.16.4 (#847)
Bumps [@webav/av-cliper](https://github.com/bilibili/WebAV) from 0.14.15 to 0.16.4.
- [Changelog](https://github.com/bilibili/WebAV/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bilibili/WebAV/commits)

---
updated-dependencies:
- dependency-name: "@webav/av-cliper"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 09:35:43 +08:00
Harvey Zack 11742b82dd Refactor Control class to remove unnecessary loading.show assignments 2024-10-21 18:48:41 +08:00
Harvey Zack cebbb6ec29 Refactor Control class to update control option variables and element references 2024-10-21 18:32:42 +08:00
Harvey Zack bb3fc27427 Refactor Control class to update control option variables and element references 2024-10-21 18:26:06 +08:00
Harvey Zack a01782732d Refactor Control class to update control option variables and element references 2024-10-21 17:32:48 +08:00
Harvey Zack 0b75f1d132 Refactor Control class to update control option variables and element references 2024-10-21 17:22:52 +08:00
Harvey Zack dcd6e081d8 Refactor Control class to update control option variables and element references 2024-10-21 16:16:29 +08:00
Harvey Zack cc13b9cc0f Refactor Control class to update control option variables and element references 2024-10-21 14:18:33 +08:00
Harvey Zack 2eb4be2bbe Refactor Control class to update control option variables and element references 2024-10-21 14:13:02 +08:00
Harvey Zack af1c769150 Update index.js 2024-10-21 12:42:49 +08:00
Harvey Zack 5dcb3e11c1 Refactor Artplayer class to use arrow functions for getter methods 2024-10-21 11:52:45 +08:00
Harvey Zack 395747f88f Refactor Artplayer class to update video URLs with query parameters 2024-10-21 11:49:14 +08:00
Harvey Zack 945ff841d5 Refactor Artplayer class to update qualityMix.js and component.js 2024-10-21 11:18:22 +08:00
Harvey Zack c82e381aa1 Refactor Artplayer class to remove unnecessary CSS transformations in setting.less 2024-10-21 10:27:26 +08:00
Harvey Zack ed88c73ab2 Refactor Artplayer class to update import path for Component 2024-10-21 00:18:28 +08:00
Harvey Zack 2db49bdede Refactor Artplayer class to update import path for Component 2024-10-20 23:58:07 +08:00
Harvey Zack c526b45820 Update index.js 2024-10-20 23:43:55 +08:00
Harvey Zack d87e120282 Update event.md 2024-10-20 22:44:25 +08:00
Harvey Zack 477331b0e2 Refactor Artplayer class to remove unnecessary CSS transformations in setting.less 2024-10-20 22:35:14 +08:00
Harvey Zack 0d5757b51c Refactor subtitleOffset function to update range values and append items 2024-10-20 22:03:35 +08:00
Harvey Zack 8566df6336 Refactor subtitleOffset function to update range values and append items 2024-10-20 22:02:01 +08:00
Harvey Zack 3cece10f9e Refactor Artplayer class to add isGetter utility function 2024-10-20 21:57:44 +08:00
Harvey Zack b6df6a6148 Refactor Artplayer class to add keydown event listener 2024-10-20 16:21:34 +08:00
Harvey Zack 0ddb7751a1 Refactor Artplayer class to update build timestamp 2024-10-20 15:06:06 +08:00
Harvey Zack fbfee926ca Refactor Setting class to update range values and append items 2024-10-20 14:46:40 +08:00
Harvey Zack d678378119 Update version to 5.2.1 in package.json and Artplayer class 2024-10-20 14:21:52 +08:00
Harvey Zack b949fedc06 Refactor Setting class to fix state loss issue, update range callback return type, and remove isStringOrNumber utility function 2024-10-20 13:56:22 +08:00
Harvey Zack 191c7736c4 Refactor Setting class to update range values 2024-10-20 13:28:39 +08:00
Harvey Zack c84157e30b Refactor Setting class to update and append items 2024-10-20 12:21:18 +08:00
Harvey Zack 1d191fe658 Refactor Setting class to update and append items 2024-10-20 10:49:45 +08:00
Harvey Zack bae22338dc Refactor Setting class to update and append items 2024-10-20 00:24:49 +08:00
Harvey Zack 6cf85b2f39 Refactor Setting class to update and append items 2024-10-20 00:09:09 +08:00
Harvey Zack 5e09d2e513 Refactor Setting class to append items to panel 2024-10-19 23:58:24 +08:00
Harvey Zack 49704ffc29 Refactor Setting class to fix formatting and event handling 2024-10-19 23:37:01 +08:00
Harvey Zack e8c317051a Refactor Setting class to fix formatting and event handling 2024-10-19 23:27:28 +08:00
Harvey Zack b16a845875 Refactor Setting class to fix formatting and event handling 2024-10-19 23:11:19 +08:00
Harvey Zack 885bbf5a6d Refactor Setting class to use correct import and naming conventions 2024-10-19 22:56:52 +08:00
Harvey Zack 5e38f2d3b5 Refactor Setting class to use correct import and naming conventions 2024-10-19 22:31:32 +08:00
Harvey Zack 74915ebf9f Refactor Setting class to use correct import and naming conventions 2024-10-19 18:19:37 +08:00
Harvey Zack f62640e6e9 Update artplayer package version to 5.2.0 2024-10-19 14:10:13 +08:00
Harvey Zack 9221d42964 Add artplayer-plugin-ambilight package and demo 2024-10-19 13:55:16 +08:00
Harvey Zack 5a4598f846 Update CHANGELOG_CN.md 2024-10-19 13:54:23 +08:00
Harvey Zack 5dfe50c719 Add artplayer-plugin-ambilight package and demo 2024-10-19 13:53:36 +08:00
Harvey Zack 406d71b53c Refactor thumbnailsMix to add hover event handling 2024-10-18 23:45:01 +08:00
Harvey Zack 8481bddba1 Update mobile.html 2024-10-14 23:16:51 +08:00
Harvey Zack edc33bb32f artplayer-plugin-vast@1.0.0 2024-10-12 16:58:23 +08:00
Harvey Zack 252c226473 chore: add .npmrc and .npmignore files to multiple packages 2024-10-08 19:49:55 +08:00
Harvey Zack b8c29f29dc refactor: remove unused $player reference and add segmenter initialization log 2024-10-08 19:29:25 +08:00
Harvey Zack ffe4dd0d37 Update index.js 2024-10-08 12:05:48 +08:00
Harvey Zack a7599c41b5 docs: update README and config to include danmuku-mask plugin link 2024-10-08 12:00:40 +08:00
Harvey Zack e9d544f416 Built@main artplayer-plugin-danmuku-mask 2024-10-08 11:57:45 +08:00
Harvey Zack 7a1240b889 fix Option 2024-10-08 11:53:26 +08:00
Harvey Zack fdfc44806c fix stopSegmentation 2024-10-08 10:09:29 +08:00
Harvey Zack bdecbffeeb add selfie_segmentation 2024-10-08 09:47:05 +08:00
Harvey Zack 56b71879e8 feat: add function to make white pixels transparent in danmuku mask canvas 2024-10-08 00:51:12 +08:00
Harvey Zack fed73a9409 feat: adjust canvas opacity and update color settings for danmuku mask functionality 2024-10-08 00:34:54 +08:00
Harvey Zack ef56482911 feat: remove unused style file and integrate TensorFlow body segmentation for danmuku mask functionality 2024-10-07 23:49:33 +08:00
Harvey Zack d9bdc9bdeb feat: add danmuku mask plugin for ArtPlayer with initial implementation and documentation 2024-10-07 22:41:51 +08:00
Harvey Zack a6f0dc50e5 feat: update version to 1.0.1 and enhance Chromecast plugin functionality 2024-09-24 10:50:26 +08:00
Harvey Zack c9d2d6c194 feat: filter empty lines in subtitle rendering for improved display 2024-09-22 21:33:42 +08:00
Harvey Zack 1e63b8dc83 feat: update version to 1.1.0 and simplify cue merging logic 2024-09-22 18:08:40 +08:00
Harvey Zack c0c5a12010 feat: update subtitle properties and events to enhance cue management and retrieval 2024-09-22 17:35:12 +08:00
Harvey Zack 8ea85476e0 feat: update subtitle handling to support multiple active cues and improve rendering logic 2024-09-22 17:23:43 +08:00
Harvey Zack 3d33458efc feat: update package version to 1.0.0 and remove deprecated HLS quality files 2024-09-22 16:38:44 +08:00
Harvey Zack 6b93dc95b0 feat: update HLS links in documentation to reflect migration to artplayer-plugin-hls-control 2024-09-22 16:37:20 +08:00
Harvey Zack e3db4125b0 feat: simplify HLS instance handling in update function 2024-09-22 16:29:23 +08:00
Harvey Zack b9878e43e0 feat: update HLS control example and improve audio/quality track selection logic 2024-09-22 14:37:01 +08:00
Harvey Zack 31bd66a33e feat: add audio control feature to artplayer-plugin-hls-control, include audio.svg and update documentation 2024-09-22 13:46:14 +08:00
Harvey Zack ef964c4bc0 feat: migrate from artplayer-plugin-hls-quality to artplayer-plugin-hls-control, update configurations and documentation 2024-09-22 12:46:59 +08:00
Harvey Zack 4a172377b5 feat: update artplayer-plugin-hls-quality to version 3.0.0, add quality.svg and remove image.svg 2024-09-22 12:17:30 +08:00
Harvey Zack 666d1d8585 Update option.md 2024-09-19 18:07:03 +08:00
Harvey Zack 610e1e6139 Update config.js 2024-09-19 10:54:31 +08:00
Harvey Zack 57725e8e27 feat: add initial implementation of artplayer-proxy-canvas with core functionality 2024-09-19 10:52:54 +08:00
Harvey Zack 1605df2943 feat: update artplayerProxyCanvas to accept a callback for custom rendering options 2024-09-17 11:11:52 +08:00
Harvey Zack 92654e911f feat: add picture-in-picture support and enhance event emission in artplayerProxyCanvas 2024-09-17 10:30:52 +08:00
Harvey Zack faa621c5be Update canvas.js 2024-09-17 10:11:44 +08:00
Harvey Zack 157d28a647 refactor: simplify artplayerProxyCanvas implementation and improve event handling 2024-09-17 09:38:57 +08:00
Harvey Zack 51e558dc50 feat: add Arabic language support to documentation and type definitions 2024-09-16 22:41:15 +08:00
Harvey Zack 8f4dab5005 feat: Arabic language support added 2024-09-16 22:35:14 +08:00
Sumer Ahmed 4f631a0d7f feat: Arabic language support added (#809) 2024-09-16 22:29:22 +08:00
Harvey Zack c0a280a6e8 fix: remove error throwing in artplayerProxyCanvas 2024-09-15 11:57:26 +08:00
Harvey Zack 2a864ad97d Update canvas.js 2024-09-15 11:13:08 +08:00
Harvey Zack 2ba1b7d77a fix: artplayerProxyCanvas 2024-09-15 11:05:56 +08:00
Harvey Zack a74e7bbff4 feat: createImageBitmap 2024-09-15 10:56:51 +08:00
Harvey Zack 710f9477f8 feat: artplayerProxyCanvas 2024-09-15 10:39:11 +08:00
Harvey Zack 22dce779d1 update controls 2024-09-15 00:24:02 +08:00
Harvey Zack 400ab2f9c4 fix drawImage 2024-09-15 00:15:03 +08:00
Harvey Zack 278119068c feat: 移除不必要的日志输出,优化视频元素的创建逻辑,增加视频播放时的内联属性 2024-09-15 00:03:32 +08:00
Harvey Zack d4a868621f feat: 重命名渲染函数,优化绘制逻辑,增加绘制事件的日志输出 2024-09-14 23:33:30 +08:00
Harvey Zack f867a97032 feat: 重构视频帧绘制逻辑,优化渲染流程,增加视频播放和暂停事件的日志输出 2024-09-14 18:32:37 +08:00
Harvey Zack 211e9d22a2 feat: 增加动态设置字幕偏移功能,更新相关文档 2024-09-14 17:37:47 +08:00
Harvey Zack 36fb27d7a1 feat: 优化字幕事件逻辑,新增字幕加载和更新事件,删除不再使用的字幕切换事件 2024-09-14 17:30:22 +08:00
Harvey Zack 9b87f9661d feat: 优化字幕偏移逻辑,增加对模板的支持,修复字幕切换事件参数 2024-09-14 16:59:24 +08:00
Harvey Zack 36b2c80666 add restoreInit 2024-09-14 16:48:30 +08:00
Harvey Zack 2b11d897ff feat: 增加字幕相关属性和事件,优化字幕切换逻辑 2024-09-14 16:14:59 +08:00
Harvey Zack a0b6af32d0 Refactor artplayer-proxy-canvas to use requestAnimationFrame for frame drawing 2024-09-11 18:48:33 +08:00
Harvey Zack c81364ca9a add sleep 2024-09-08 19:43:04 +08:00
Harvey Zack c8b5282af9 feat: Add sleep function for delayed frame drawing in artplayer-proxy-canvas 2024-09-08 18:53:00 +08:00
Harvey Zack 7bf8a00a7d chore: Update artplayer-proxy-canvas to support canvas proxy 2024-09-08 18:46:02 +08:00
Harvey Zack a4be7b0ee6 feat: Update artplayer-proxy-canvas to support canvas proxy 2024-09-08 18:28:39 +08:00
Harvey Zack 813528f916 chore: Update artplayer-proxy-canvas to support canvas proxy 2024-09-08 18:20:11 +08:00
Harvey Zack 0f60ea53ae chore: Update artplayer-proxy-canvas to support canvas proxy 2024-09-08 18:05:06 +08:00
Harvey Zack c984034234 Update package.json 2024-09-07 10:39:14 +08:00
Harvey Zack 9f1ba901bb Update package.json 2024-09-07 10:30:57 +08:00
Harvey Zack afcfebe01e Update Artplayer.vue 2024-09-06 10:02:29 +08:00
Harvey Zack 910c22391f Update Artplayer.vue 2024-09-06 10:02:18 +08:00
Harvey Zack 69133015e9 chore: Update auto.thumbnail.js and index.js 2024-09-01 12:14:53 +08:00
Harvey Zack 4e2d68854a Update README.md 2024-09-01 12:07:00 +08:00
Harvey Zack a33df191a4 feat: Add artplayer-plugin-auto-thumbnail plugin 2024-09-01 12:05:08 +08:00
Harvey Zack c44ec85ed2 refactor: Update artplayer-plugin-vtt-thumbnail version to 1.0.3 2024-08-31 12:02:16 +08:00
Harvey Zack 44171beb3a refactor: Update artplayer-plugin-vtt-thumbnail 2024-08-31 11:54:34 +08:00
Harvey Zack c7299b926e Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2024-08-31 11:47:28 +08:00
Harvey Zack 3fdc11cf40 update artplayer-plugin-vtt-thumbnail 2024-08-31 11:47:23 +08:00
Harvey Zack 63223c8202 refactor: Remove unused libmedia proxy and related files 2024-08-25 14:44:11 +08:00
Harvey Zack 2fe7a09aaf refactor: Update Q群 link in index.html 2024-08-24 23:03:11 +08:00
Harvey Zack 9a4ebf7917 Update vast.js 2024-08-23 23:31:06 +08:00
Harvey Zack 4d43fffa87 refactor: Remove unused variables in VAST plugin 2024-08-23 23:27:09 +08:00
Harvey Zack 87b0506f51 refactor: Update VAST plugin in Artplayer 2024-08-23 23:23:50 +08:00
Harvey Zack f9192ff852 refactor: Update VAST plugin in Artplayer 2024-08-23 22:42:04 +08:00
Harvey Zack d2de5297d6 refactor: Update autoPlayback plugin in Artplayer 2024-08-23 16:20:25 +08:00
Harvey Zack 17b2268ce0 refactor: Remove unused loadImg function in Artplayer 2024-08-23 12:40:26 +08:00
Harvey Zack 27f161be40 refactor: Update thumbnail scale and video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-23 12:37:32 +08:00
Harvey Zack 1ee80cf012 refactor: Remove unused loadImg function in Artplayer 2024-08-23 12:06:49 +08:00
Harvey Zack 5764344aaf refactor: Update thumbnail scale in Artplayer 2024-08-23 12:05:06 +08:00
Harvey Zack 3a2e7addd9 refactor: Update video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-23 10:43:09 +08:00
Harvey Zack b2e54d6969 Update index.js 2024-08-23 10:17:17 +08:00
Harvey Zack 6f6d49bbae refactor: Update video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-22 18:29:23 +08:00
Harvey Zack 84986d384a Update option.d.ts 2024-08-22 15:40:46 +08:00
Harvey Zack 1d0139ee35 refactor: Improve video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-22 11:41:59 +08:00
Harvey Zack 71a1126aae Revert "refactor: Update video element resizing logic in Artplayer and artplayer-proxy-webav"
This reverts commit 77a3438e2d.
2024-08-22 11:38:24 +08:00
Harvey Zack 77a3438e2d refactor: Update video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-22 11:13:10 +08:00
Harvey Zack ce3503cc3a Update artplayer-proxy-webav.d.ts 2024-08-22 00:27:51 +08:00
Harvey Zack 52e424ad52 refactor: Update video element in Artplayer to support custom canvas or video 2024-08-22 00:21:23 +08:00
Harvey Zack 5bbbaa398e refactor: Update video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-22 00:09:03 +08:00
Harvey Zack b711291aee refactor: Update Artplayer's video element and add support for custom canvas or video
The code changes in this commit update the video element in Artplayer to support custom canvas or video. This enhancement allows for more flexibility in handling video playback and rendering. Additionally, new options such as volume, autoplay, autoSize, screenshot, setting, loop, flip, playbackRate, aspectRatio, fullscreen, fullscreenWeb, miniProgressBar, and autoPlayback are added to provide more control over the video player. These changes improve the functionality and usability of Artplayer.
2024-08-21 23:52:47 +08:00
Harvey Zack 5e37979e8f refactor: Update video element in Artplayer to support custom canvas or video 2024-08-21 23:44:01 +08:00
Harvey Zack ced8fb4fb1 refactor: Update video element in Artplayer to support custom canvas or video 2024-08-21 23:35:17 +08:00
Harvey Zack 984755b442 ```text
refactor: Update animation frame handling in artplayer-proxy-webav

The code changes replace the use of `requestAnimationFrame` with `setInterval` in the `start` function of `artplayer-proxy-webav`. This change improves the performance and stability of the animation frame handling, ensuring a smoother playback experience.
2024-08-21 23:29:38 +08:00
Harvey Zack 0374046606 refactor: Update loadedTime getter in Artplayer 2024-08-21 23:13:44 +08:00
Harvey Zack 796f25cea2 refactor: Update loadedTime getter in Artplayer
The code changes update the loadedTime getter in Artplayer to handle different scenarios. The getter now checks for the presence of the loadedTime property in the video element and returns it if available, otherwise it falls back to the previous logic of retrieving the buffered end time. This update improves the reliability and compatibility of Artplayer's loadedTime functionality.
2024-08-21 22:28:00 +08:00
Harvey Zack 0a7d3ca5aa refactor: Update loadedTime and playing getters in Artplayer 2024-08-21 22:10:24 +08:00
Harvey Zack 8613164368 refactor: Update loadedTime and playing getters in Artplayer
The code changes update the loadedTime and playing getters in Artplayer to handle different scenarios. The loadedTime getter now checks for the presence of the loadedTime property in the video element and returns it if available, otherwise it falls back to the previous logic of retrieving the buffered end time. Similarly, the playing getter now checks for the presence of the playing property in the video element and returns it if available, otherwise it falls back to the previous logic of determining if the video is playing based on its current time, paused state, ended state, and ready state. These updates improve the reliability and compatibility of Artplayer's loadedTime and playing functionality.
2024-08-21 21:56:08 +08:00
Harvey Zack 6dc6be5b9e refactor: Update library section heading in README and docs
The code changes update the heading for the library section in both the README and docs files. The heading is changed from "Library" to "Libraries" to provide a more accurate description of the content. This refactor improves the clarity and consistency of the documentation.
2024-08-18 21:46:11 +08:00
Harvey Zack 4fd012c20c feat: 添加动态代理支持
新增 `option.proxy` 选项,用于代理第三方的 `video` 和 `canvas`。新增 `artplayer-proxy-webav` 代理,来自 [bilibili/WebAV](https://github.com/bilibili/WebAV)。新增 `artplayer-proxy-libmedia` 代理,来自 [zhaohappy/libmedia](https://github.com/zhaohappy/libmedia)。
2024-08-18 21:19:34 +08:00
Harvey Zack 883762ed42 feat: Add support for dynamic proxies in Artplayer
The code changes introduce new proxy options (`artplayer-proxy-webav` and `artplayer-proxy-libmedia`) in Artplayer, allowing for the use of third-party video and canvas proxies. This enhancement provides more flexibility in handling video playback and rendering, improving the overall performance and compatibility of Artplayer.
2024-08-18 21:17:28 +08:00
Harvey Zack 7f6c9c8ee1 refactor: Update video element in Artplayer to support custom canvas or video 2024-08-18 21:06:56 +08:00
Harvey Zack 7fa69a7de8 refactor: Update video element in Artplayer to support custom canvas or video 2024-08-18 20:46:53 +08:00
Harvey Zack 66010cb376 refactor: Update video element in Artplayer to support custom canvas or video
This commit updates the `libmedia.js`, `option.d.ts`, `index.js`, `template.js`, and `scheme/index.js` files in the Artplayer repository. The changes introduce a new `video` property in the `Option` type, allowing for the use of a custom video element in Artplayer. The `video` property can be set to `null`, an `HTMLCanvasElement`, or an `HTMLVideoElement`. This enhancement provides flexibility in rendering video content and improves compatibility with different platforms and use cases.
2024-08-18 18:39:14 +08:00
Harvey Zack 5d6b94afa6 Update artplayer-plugin-canvas.d.ts 2024-08-17 21:04:32 +08:00
Harvey Zack 219956cabd refactor: Update build timestamp in Artplayer 2024-08-17 21:02:39 +08:00
Harvey Zack e9a488792c refactor: Update build timestamp in Artplayer
The build timestamp in Artplayer has been updated to "2024-08-15 23:17:21". This commit ensures that the build timestamp accurately reflects the latest changes made to the codebase.
2024-08-15 23:28:13 +08:00
Harvey Zack 65b0b2c53f refactor: Simplify thumbnails implementation in Artplayer 2024-08-15 23:08:33 +08:00
Harvey Zack 3e3b38fe07 feat: Refactor thumbnails implementation in Artplayer
This commit refactors the `thumbnails` implementation in Artplayer to improve code readability and maintainability. The code changes remove unnecessary variables and simplify the logic for displaying thumbnails. This refactor enhances the overall performance and user experience of the Artplayer plugin.
2024-08-15 22:56:19 +08:00
Harvey Zack 69168750f5 Update property.md 2024-08-15 22:51:20 +08:00
Harvey Zack 52d9064c8b feat: Add support for dynamic thumbnails in Artplayer
The code changes introduce a new `art.thumbnails` property that allows for dynamic setting of thumbnails in Artplayer. This feature enhances the user experience by providing a visual preview of the video content.
2024-08-15 22:50:21 +08:00
Harvey Zack 5655db4b20 feat: Disable hiding default right-click menu when Artplayer.CONTEXTMENU is set to false 2024-08-12 17:53:43 +08:00
Harvey Zack adff473f71 Update index.html 2024-08-06 15:03:55 +08:00
Harvey Zack 2e646ab4e1 Create ads.txt 2024-08-04 09:53:40 +08:00
Harvey Zack 0bb99184ca feat: Add Google AdSense script for ads in index.html and config.js 2024-08-04 09:43:38 +08:00
Harvey Zack 245ce6c6b7 feat: Add Google AdSense meta tag to index.html and config.js 2024-08-04 09:38:25 +08:00
Harvey Zack 0dd25d73c6 Update artplayer-plugin-chapter.d.ts 2024-07-18 09:43:41 +08:00
dependabot[bot] 00f0501c0e build(deps): Bump glob from 10.4.5 to 11.0.0 (#783)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 11.0.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.5...v11.0.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-10 09:33:23 +08:00
Harvey Zack 7414f4a86a Update index.html 2024-07-07 22:44:31 +08:00
Harvey Zack a86664b3db Update package.json 2024-07-04 09:59:42 +08:00
Harvey Zack e71e6ad0dd feat: Add support for custom file names in screenshot functionality 2024-07-04 09:57:13 +08:00
Harvey Zack caddb2091e feat: Add support for custom file names in screenshot functionality 2024-07-03 15:56:49 +08:00
Harvey Zack b2796a1f6c feat: Add Artplayer.STYLE property to Artplayer class 2024-06-21 11:44:02 +08:00
Harvey Zack 5a0b80b03e feat: Add STYLE property to Artplayer class 2024-06-19 19:13:04 +08:00
Harvey Zack cf0c3d9b09 Update sponsor.html 2024-06-19 09:18:26 +08:00
Harvey Zack 85bf3ea0d3 Update package.json 2024-06-17 23:18:37 +08:00
Harvey Zack c6b6e13799 feat: Update Artplayer initialization in documentation 2024-06-16 23:26:40 +08:00
Harvey Zack 0cee288097 feat: Add responsive behavior to danmuku plugin and improve panel positioning 2024-06-15 19:56:06 +08:00
Harvey Zack 74460a765e add width 2024-06-14 09:31:47 +08:00
Harvey Zack e2f27e8ea5 feat: Improve panel positioning in danmuku plugin 2024-06-13 11:20:45 +08:00
Harvey Zack b4e3121917 feat: Improve panel positioning in danmuku plugin 2024-06-13 11:12:23 +08:00
Harvey Zack 685241de57 chore: Bump version to 5.1.4 and update resize method in danmuku plugin 2024-06-13 09:46:40 +08:00
Harvey Zack ef3a1f7064 feat: Add width option for danmuku plugin 2024-06-12 21:48:44 +08:00
Harvey Zack 665348ad55 feat: Update danmuku plugin with responsive behavior 2024-06-12 21:40:17 +08:00
Harvey Zack 744913b0bf feat: Optimize progress bar and add highlight feature 2024-06-08 17:38:41 +08:00
Harvey Zack e2a40e67a0 Update utils.d.ts 2024-06-08 13:01:09 +08:00
Harvey Zack 73bafc988a feat: Fix dropdown menu bug in dev.js and build.js 2024-06-08 12:47:24 +08:00
Harvey Zack 1192f18de6 chore: Update npm dependencies and package.json files 2024-06-08 12:25:05 +08:00
Harvey Zack 232b8a3e17 feat: Add getRect function to utils and update player and control modules to use it 2024-06-08 12:17:45 +08:00
Harvey Zack 2721f61b41 Merge branch 'thumbnails' 2024-06-08 12:13:18 +08:00
Harvey Zack a7f4b0bc84 feat: Add lazy loading for thumbnails in mobile.js 2024-06-08 12:11:47 +08:00
Harvey Zack f4c9f1f639 update thumbnails 2024-06-08 12:11:11 +08:00
Harvey Zack c4fd5b1a5d Update README.md 2024-06-06 10:17:38 +08:00
Harvey Zack 7c52a30833 Update CHANGELOG_CN.md 2024-06-05 09:21:00 +08:00
Harvey Zack 1ee0342f11 Update danmuku.md 2024-06-05 09:19:03 +08:00
Harvey Zack 9973cdc4da feat: Optimize chapter handling in artplayer-plugin-chapter 2024-06-05 09:17:39 +08:00
Harvey Zack 403be5dc6b chore: Bump version to 5.1.2 and update style.less in artplayer-plugin-danmuku 2024-06-05 09:13:11 +08:00
Harvey Zack 8aea92f40a Update index.js 2024-06-04 23:06:20 +08:00
Harvey Zack 0e269c2f41 Refactor danmuku.js to use async/await for emitting danmus 2024-06-04 22:08:23 +08:00
Harvey Zack 2d44d602e4 feat: Add parameter to append danmuku library in artplayer-plugin-danmuku 2024-06-04 21:59:55 +08:00
Harvey Zack 390be821d6 feat: Refactor danmuku.js to use async/await for emitting danmus 2024-06-04 19:20:26 +08:00
Harvey Zack 69d99cc478 feat: Refactor worker.js to use dynamic function dispatch 2024-06-04 19:12:11 +08:00
Harvey Zack d57a13a2bd Optimize bilibiliDanmuParseFromUrl function in artplayer-plugin-danmuku 2024-06-04 19:00:49 +08:00
Harvey Zack e58285f2dd Optimize bilibiliDanmuParseFromUrl function in artplayer-plugin-danmuku 2024-06-04 18:52:59 +08:00
Harvey Zack 999988465c feat: Optimize chapter handling in artplayer-plugin-chapter 2024-06-03 12:00:44 +08:00
Harvey Zack e11a2da806 Optimize chapter end time handling in artplayer-plugin-chapter 2024-06-03 11:51:58 +08:00
Harvey Zack 586375eeb0 Update danmuku.js 2024-06-03 10:27:11 +08:00
Harvey Zack c8d3e5b5a6 build artplayer-plugin-chapter 2024-06-03 10:09:18 +08:00
Harvey Zack 5160dcabca Optimize setBar event and remove unnecessary class manipulation in artplayer-plugin-chapter 2024-06-03 10:04:09 +08:00
Harvey Zack f3db438d6b Optimize setBar event and handle non-array chapters in artplayer-plugin-chapter 2024-06-03 01:11:35 +08:00
Harvey Zack d8ff61acf7 chore: Refactor artplayer-plugin-chapter to sort chapters before processing 2024-06-03 01:10:29 +08:00
Harvey Zack 5edf5af672 Optimize setBar event and fix chapter display in artplayer-plugin-chapter 2024-06-03 01:02:22 +08:00
Harvey Zack bc5761ecdb Optimize setBar event and add lazy loading for thumbnails in artplayer-plugin-chapter 2024-06-03 00:38:54 +08:00
Harvey Zack 2e72e0cec2 Optimize setBar event and update chapter display in artplayer-plugin-chapter 2024-06-03 00:35:47 +08:00
Harvey Zack 94e34320e0 Optimize setBar event and reduce delay for hiding chapter title in artplayer-plugin-chapter 2024-06-03 00:17:32 +08:00
Harvey Zack e8d7ae91f0 Optimize setBar event and add lazy loading for thumbnails in artplayer-plugin-chapter 2024-06-02 23:55:20 +08:00
Harvey Zack d99fa9447a Optimize setBar event and add lazy loading for thumbnails in artplayer-plugin-chapter 2024-06-02 22:59:42 +08:00
Harvey Zack aaa5ef310e Optimize setBar event and add lazy loading for thumbnails in artplayer-plugin-chapter 2024-06-02 22:23:22 +08:00
Harvey Zack 0e58ce8cd9 feat: Optimize setBar event and add artplayerPluginChapter plugin 2024-06-02 22:09:58 +08:00
Harvey Zack 570c1611d3 feat: Add lazy loading for thumbnails in artplayer-plugin-chapter 2024-06-02 20:06:47 +08:00
Harvey Zack 17ab163e91 chore: Bump artplayer-plugin-danmuku version to 5.1.1 2024-06-02 19:52:25 +08:00
Harvey Zack 41cdde4b79 feat: Improve chapter display in artplayer-plugin-chapter 2024-06-02 19:26:33 +08:00
Harvey Zack 2326628b86 feat: Update chapter title display in artplayer-plugin-chapter 2024-06-02 19:12:27 +08:00
Harvey Zack 0804d1790b feat: Add chapter text display on progress hover in artplayer-plugin-chapter 2024-06-02 18:51:16 +08:00
Harvey Zack 33eba49a3b fix: Remove unused code for progress hover in artplayer 2024-06-02 18:13:29 +08:00
Harvey Zack 3e3e355e34 feat: Add support for video chapters in artplayer-plugin-chapter 2024-06-02 18:06:11 +08:00
Harvey Zack a59942ca58 chore: Update ArtPlayer version to 5.1.5 2024-06-02 14:22:04 +08:00
Harvey Zack 0fce9f5ffe Update common.js 2024-06-02 14:01:08 +08:00
Harvey Zack eef1d675df feat: Add support for video chapters in artplayer-plugin-chapter 2024-06-02 13:07:26 +08:00
Harvey Zack 502865ef65 Update create.js 2024-06-02 12:56:26 +08:00
Harvey Zack 924c3513e8 Update create.js 2024-06-02 12:45:54 +08:00
Harvey Zack 0f7a3ce02c chore: Update window object property name to ArtplayerPluginVast 2024-06-02 12:37:30 +08:00
Harvey Zhao fac7d15726 Vast (#762)
* add artplayer-plugin-vast

* chore: Add create:plugin script to package.json

* chore: Remove deprecated artplayer-plugin-{{name}} and artplayer-plugin-vast types

* chore: Update artplayer-plugin-vast package description

* chore: Update Prettier configuration and dependencies
2024-06-02 12:28:17 +08:00
750 changed files with 124869 additions and 25979 deletions

No files matched your search

-20
View File
@@ -1,20 +0,0 @@
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
time: "19:00"
open-pull-requests-limit: 10
ignore:
- dependency-name: cssnano
versions:
- 5.0.0
- 5.0.1
- dependency-name: autoprefixer
versions:
- 10.2.4
- 10.2.5
- dependency-name: eslint-config-prettier
versions:
- 8.0.0
+23 -23
View File
@@ -15,27 +15,27 @@ jobs:
node-version: [20.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: npm install, lint, build, and test
run: |
npm install
npm run lint
npm run build:all
env:
CI: true
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: install, lint, build, and test
run: |
yarn
yarn lint
yarn build:all
env:
CI: true
- name: Deploy to GitHub Pages
if: success()
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git add -f docs
git commit -m 'Deploy to GitHub Pages'
git subtree split --prefix docs master -b gh-pages-temp
git push origin gh-pages-temp:refs/heads/gh-pages --force
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy to GitHub Pages
if: success()
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git add -f docs
git commit -m 'Deploy to GitHub Pages'
git subtree split --prefix docs master -b gh-pages-temp
git push origin gh-pages-temp:refs/heads/gh-pages --force
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-10
View File
@@ -1,10 +0,0 @@
docs
.github
.docusaurus
node_modules
.parcel-cache
packages/*/dist
packages/*/node_modules
packages/*/.parcel-cache
packages/artplayer-template/*/.next
packages/artplayer-template/*/.nuxt
-7
View File
@@ -1,7 +0,0 @@
{
"useTabs": false,
"tabWidth": 4,
"singleQuote": true,
"trailingComma": "all",
"printWidth": 120
}
+232 -153
View File
@@ -6,176 +6,255 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
## [5.1.4] - 2024-6-1
- 移除 `svg` 默认的 `fill` 颜色值
- 优化 `artplayer.d.ts`, 现在可以直接导入 `Option`
- 重构 `artplayerPluginDanmuku` 插件
- 新增 `artplayerPluginChromecast` 插件
- 添加 `fullscreenError` 事件
- 优化双击事件: [#728](https://github.com/zhw2590582/ArtPlayer/pull/728)
- 修复 `thumbnails` 延迟显示问题
- 新增 `art.plugins.lock.state = true/false`, 用于手动控制 `lock` 状态
- 当鼠标在控制栏上,或者打开了设置面板,控制栏不再自动隐藏
- 由于兼容性不足,删除 `screen.orientation.lock` 功能
- 修复移动端的 `fullscreen` bug
```ts
import type { Option } from 'artplayer'
const option: Option = {
container: '.artplayer-app',
url: './assets/sample/video.mp4',
}
```
## [5.2.5] - 2025-08-01
- 为所有包添加 `ESM` 版本如 `artplayer/dist/artplayer.esm.js`
- 识别 `globalThis.CUSTOM_USER_AGENT` 全局变量,用于自定义 `navigator.userAgent`
- 修复 `artplayer-plugin-danmuku` 初始化时 `mount` 参数缺失的错误
## [5.2.3] - 2025-04-20
- 添加越南语 `vi`
- 销毁时,清空 `video.src` 属性
- 为 `Setting` 添加 `onClick` 选项
- 修复当网页没有head时,弹幕插件和章节插件引起的样式加载失败问题
- 添加 `gesture` 选项,用于是否开启移动端的 `video` 元素的手势事件
## [5.2.2] - 2025-01-19
- 修复缩略图跨越问题
- 修复当网页没有head时引起的样式加载失败问题
- 新增字幕插件的设置面板的滑块支持移动端拖动
- 修复设置面板在旋屏时的定位错误
- 修复全屏状态变化时类名切换错误问题
## [5.2.1] - 2024-10-26
- 重构 `Setting` 组件,修复状态丢失的问题
- 类型是 `range` 的 `Setting`,现在回调函数返回的 `range` 是数字的数组,不再是单一数字
- 删除 `isStringOrNumber` 工具函数
- 修复 `artplayer-plugin-hls-control` 状态不统一的问题
- 废弃 `artplayer-plugin-dash-quality` 插件
- 新增 `artplayer-plugin-dash-control` 插件
- 使用 `code` 替代已废弃的`keyCode` 监听键盘事件
- 新增 `keydown` 事件,监听来自 `document` 的 `keydown` 事件
## [5.2.0] - 2024-10-19
- 新增 `option.proxy` 选项,用于代理第三方的 `video` 和 `canvas`
- 新增 `artplayer-proxy-canvas` 代理,可以使用 `canvas` 播放视频
- 新增 `option.thumbnails.scale`, 用于预览图缩放
- 修复 `art.url` 更改不能触发 `autoPlayback` 的 `bug`: [#797](https://github.com/zhw2590582/ArtPlayer/issues/797)
- 新增 `art.subtitle.cues` 属性, 获取整体的字幕列表
- 新增 `art.subtitle.activeCues` 属性, 获取活跃的字幕列表
- 新增 `subtitleBeforeUpdate` 事件, 在字幕元素渲染前触发
- 修改 `subtitleUpdate` 事件为 `subtitleAfterUpdate`, 在字幕元素渲染后触发
- 优化 `subtitleLoad` 事件的触发时机和回调参数
- 删除 `subtitleSwitch` 事件,请使用 `subtitleLoad` 代替
- 升级 `artplayer-plugin-hls-quality` 为 `artplayer-plugin-hls-control`
- 新增 `artplayer-plugin-ambilight` 插件
- 修复 `thumbnails` 显示 bug
## [5.1.7] - 2024-8-15
- 新增 `Artplayer.STYLE` 属性,返回播放器样式文本
- `art.screenshot('your-name')` 截图功能支持自定义文件名字
- `Artplayer.CONTEXTMENU` 为 `false` 时,不再隐藏默认右键菜单
- 新增 `art.thumbnails` 属性,用于动态设置 `thumbnails`
## [5.1.6] - 2024-6-15
- 优化 `setBar` 事件
- 新增 `artplayerPluginChapter` 插件
- 新增 `art.plugins.artplayerPluginDanmuku.load(target)` 参数,用于追加弹幕库
- 新增弹幕插件的 `width` 选项参数,当播放器宽度小于此值时,弹幕发射器置于播放器底部
- 修复 `artplayerPluginVttThumbnail` 在移动端不显示的问题
- 修复弹幕插件样式,和字号百分比显示的 `bug`
- 移动端也可以看到 `thumbnails` 了
- 恢复 `screen.orientation.lock` 功能
## [5.1.5] - 2024-6-1
- 重构 `artplayerPluginDanmuku` 插件
- 新增 `artplayerPluginChromecast` 插件
- 添加 `fullscreenError` 事件
- 优化双击事件: [#728](https://github.com/zhw2590582/ArtPlayer/pull/728)
- 修复 `thumbnails` 延迟显示问题
- 新增 `art.plugins.lock.state = true/false`, 用于手动控制 `lock` 状态
- 当鼠标在控制栏上,或者打开了设置面板,控制栏不再自动隐藏
- 由于兼容性不足,删除 `screen.orientation.lock` 功能
- 修复移动端的 `fullscreen` bug
## [5.1.1] - 2024-1-11
- 插件函数支持同步和异步返回
- 插件函数支持同步和异步返回
## [5.1.0] - 2023-12-23
- 插件函数改为支持异步返回
- 当播放地址发生错误到达上限后,不会再主动销毁播放器
- 分离语言文件,核心代码不再捆绑多国语言 [语言设置](https://artplayer.org/document/start/i18n.html)
- 更新组件时,支持填写只更新的字段 [pull/549](https://github.com/zhw2590582/ArtPlayer/pull/549)
- 添加 `muted` 事件,当静音的状态变化时触发
- 添加 `Artplayer.LOG_VERSION` 全局配置,设置是否打印播放器版本,默认为 `true`
- 添加 `Artplayer.USE_RAF` 全局配置,设置是否使用 `requestAnimationFrame` ,默认为 `false`,目前主要用于进度条的平滑效果
- 移除默认样式 `margin:0;padding:0;`,因为容易与第三方库起样式冲突,导致难以覆写
- 字幕行从 `p` 标签改为 `div` 标签,并且添加类名 `art-subtitle-line`
- 在移动端,点击视频会切换控制栏的显示与隐藏
- 由于功能不常用,删除 `art.loop` 区间播放功能
- 字幕轨添加 `label` 属性,用于在移动设备上显示字幕名字
- 添加 `unescape`, `isBrowser`, `setStyleText` 工具函数
- 添加 `artplayerPluginMultipleSubtitles` 插件,用于显示合并后的字幕文件: [demo](https://www.artplayer.org/?libs=./uncompiled/artplayer-plugin-multiple-subtitles/index.js&example=multiple.subtitles)
- 修改迷你进度条的显示方式
- 插件函数改为支持异步返回
- 当播放地址发生错误到达上限后,不会再主动销毁播放器
- 分离语言文件,核心代码不再捆绑多国语言 [语言设置](https://artplayer.org/document/start/i18n.html)
- 更新组件时,支持填写只更新的字段 [pull/549](https://github.com/zhw2590582/ArtPlayer/pull/549)
- 添加 `muted` 事件,当静音的状态变化时触发
- 添加 `Artplayer.LOG_VERSION` 全局配置,设置是否打印播放器版本,默认为 `true`
- 添加 `Artplayer.USE_RAF` 全局配置,设置是否使用 `requestAnimationFrame` ,默认为 `false`,目前主要用于进度条的平滑效果
- 移除默认样式 `margin:0;padding:0;`,因为容易与第三方库起样式冲突,导致难以覆写
- 字幕行从 `p` 标签改为 `div` 标签,并且添加类名 `art-subtitle-line`
- 在移动端,点击视频会切换控制栏的显示与隐藏
- 由于功能不常用,删除 `art.loop` 区间播放功能
- 字幕轨添加 `label` 属性,用于在移动设备上显示字幕名字
- 添加 `unescape`, `isBrowser`, `setStyleText` 工具函数
- 添加 `artplayerPluginMultipleSubtitles` 插件,用于显示合并后的字幕文件: [demo](https://www.artplayer.org/?libs=./uncompiled/artplayer-plugin-multiple-subtitles/index.js&example=multiple.subtitles)
- 修改迷你进度条的显示方式
## [5.0.9] - 2023-5-14
- 修复 `art.autoOrientation` 样式错误问题
- 移除播放器容器的动画效果
- 修复 `art.autoOrientation` 样式错误问题
- 移除播放器容器的动画效果
## [5.0.8] - 2023-5-13
- 修复 `art.mini` 的互斥关系
- 修复 `art.aspectRatio` 动画效果问题
- 修复 `art.mini` 的互斥关系
- 修复 `art.aspectRatio` 动画效果问题
## [5.0.7] - 2023-5-13
- 使用 `switchUrl` 或者 `switchQuality` 方法切换地址后会保持原有的调整如:`aspectRatio`, `playbackRate`, `flip`, `autoSize`
- 删除 `switchUrl` 方法和 `switchQuality` 方法的第二个 `name` 参数
- 添加 `isIOS13` 工具,用于修复在 `IOS13` 以上版本的设备上的 `isMobile` 判断不准确的问题
- `art.autoSize` 和 `art.autoHeight` 改为方法的形式调用,即 `art.autoSize()` 和 `art.autoHeight()`
- 添加新的属性 `art.quality`,用于动态更新画质列表
- 修复 `art.aspectRatio` 属性不正确的问题
- 添加 `art.switch` Setter 属性, 功能和 `art.switchUrl` 方法一样
- 使用 `switchUrl` 或者 `switchQuality` 方法切换地址后会保持原有的调整如:`aspectRatio`, `playbackRate`, `flip`, `autoSize`
- 删除 `switchUrl` 方法和 `switchQuality` 方法的第二个 `name` 参数
- 添加 `isIOS13` 工具,用于修复在 `IOS13` 以上版本的设备上的 `isMobile` 判断不准确的问题
- `art.autoSize` 和 `art.autoHeight` 改为方法的形式调用,即 `art.autoSize()` 和 `art.autoHeight()`
- 添加新的属性 `art.quality`,用于动态更新画质列表
- 修复 `art.aspectRatio` 属性不正确的问题
- 添加 `art.switch` Setter 属性, 功能和 `art.switchUrl` 方法一样
## [5.0.6] - 2023-5-3
- 修复设置面板的样式错误
- 修复设置面板的样式错误
## [5.0.5] - 2023-5-3
- 弹幕插件添加 `heatmap` 选项,用于是否开启热度图,默认为关闭
- 修复英文字幕换行的样式错误
- 修复设置面板的样式错误
- 移除多余的全局属性
- 移除 `title` 选项,因为目前用处不大
- 移除 `whitelist` 选项,因为目前用处不大
- 弹幕插件添加 `heatmap` 选项,用于是否开启热度图,默认为关闭
- 修复英文字幕换行的样式错误
- 修复设置面板的样式错误
- 移除多余的全局属性
- 移除 `title` 选项,因为目前用处不大
- 移除 `whitelist` 选项,因为目前用处不大
## [5.0.4] - 2023-4-27
- 修复控制器的上拉列表的样式 bug
- 修复控制器的上拉列表的样式 bug
## [5.0.3] - 2023-4-26
- 修复音量控制器 `event.pageY` 取值错误
- 修改构建配置,`artplayer.legacy.js` 可以兼容到 `IE 11`
- 修复音量控制器 `event.pageY` 取值错误
- 修改构建配置,`artplayer.legacy.js` 可以兼容到 `IE 11`
## [5.0.2] - 2023-4-24
- 修复控制栏位置的样式兼容问题
- 修复控制栏位置的样式兼容问题
## [5.0.1] - 2023-4-24
- 修复网页全屏的样式错误
- 修改内置设置项的文本错误
- 修复网页全屏的样式错误
- 修改内置设置项的文本错误
## [5.0.0] - 2023-4-23
- 重写了音量控制器
- 修复在移动端下,进度拖动的角度不正确的问题
- 重写了 `mini` 模式,现在这个模式下,视频会脱离原来的容器
- 全部组件(层,控制器,右键菜单,设置面板)支持动态删除和动态更新
- 字幕选项添加了 `onVttLoad` 方法,用于在字幕输出前修改 `vtt` 文本
- 重写了全部样式,添加了许多 `css` 变量
- 添加 `cssVar` 选项,用于初始化 `css` 变量
- 添加 `cssVar` 方法,用于设置和获取 `css` 变量
- 插件 `artplayer-plugin-hls-quality` 添加 `getResolution` 函数选项,用于获取从 `level` 中分辨率的文本
- 新增 `artplayer-plugin-dash-quality` 插件,用于添加 `Dash` 画质列表到播放器
- 修复 `lock` 和 `loop` 事件失效问题
- 添加俄语 `ru` 和印度尼西亚 `id` 语言
- 更新 `artplayer-plugin-control`,用于兼容`artplayer@5.0.0`
- 更新 `artplayer-plugin-dash-quality`,用于兼容`artplayer@5.0.0`
- 更新 `artplayer-plugin-hls-quality`,用于兼容`artplayer@5.0.0`
- 更新 `artplayer-plugin-danmuku`,用于兼容`artplayer@5.0.0`
- 重写了音量控制器
- 修复在移动端下,进度拖动的角度不正确的问题
- 重写了 `mini` 模式,现在这个模式下,视频会脱离原来的容器
- 全部组件(层,控制器,右键菜单,设置面板)支持动态删除和动态更新
- 字幕选项添加了 `onVttLoad` 方法,用于在字幕输出前修改 `vtt` 文本
- 重写了全部样式,添加了许多 `css` 变量
- 添加 `cssVar` 选项,用于初始化 `css` 变量
- 添加 `cssVar` 方法,用于设置和获取 `css` 变量
- 插件 `artplayer-plugin-hls-quality` 添加 `getResolution` 函数选项,用于获取从 `level` 中分辨率的文本
- 新增 `artplayer-plugin-dash-quality` 插件,用于添加 `Dash` 画质列表到播放器
- 修复 `lock` 和 `loop` 事件失效问题
- 添加俄语 `ru` 和印度尼西亚 `id` 语言
- 更新 `artplayer-plugin-control`,用于兼容`artplayer@5.0.0`
- 更新 `artplayer-plugin-dash-quality`,用于兼容`artplayer@5.0.0`
- 更新 `artplayer-plugin-hls-quality`,用于兼容`artplayer@5.0.0`
- 更新 `artplayer-plugin-danmuku`,用于兼容`artplayer@5.0.0`
## [4.6.2] - 2023-1-26
- `Artplayer.PROGRESS_HEIGHT` 默认值改为 `6`
- 添加 `artplayer-plugin-vtt-thumbnail` 用于使用 `vtt` 字幕文件生成视频预览图
- 添加 `Artplayer.FULLSCREEN_WEB_IN_BODY` 用于网页全屏时,是否把播放器挂载于 `document.body` 上,默认为 `false`
- 修改字幕偏移的方式为滑块
- 字幕选项添加 `escape`,用于是否转义 `html` 标签,默认为 `true`
- `Artplayer.PROGRESS_HEIGHT` 默认值改为 `6`
- 添加 `artplayer-plugin-vtt-thumbnail` 用于使用 `vtt` 字幕文件生成视频预览图
- 添加 `Artplayer.FULLSCREEN_WEB_IN_BODY` 用于网页全屏时,是否把播放器挂载于 `document.body` 上,默认为 `false`
- 修改字幕偏移的方式为滑块
- 字幕选项添加 `escape`,用于是否转义 `html` 标签,默认为 `true`
## [4.6.1] - 2023-1-11
- 编写全新的文档
- 优化`d.ts`
- 移除多余的事件
- 优化部分样式
- 添加`i18n`选项
- 编写全新的文档
- 优化`d.ts`
- 移除多余的事件
- 优化部分样式
- 添加`i18n`选项
## [4.6.0] - 2022-12-31
- 优化控制栏图标的样式效果
- 优化设置面板的样式效果
- 修复 `art.fullscreen` 监听状态错误的问题
- 添加 `artplayer-plugin-control` 插件,用于改变控制栏样式
- 优化控制栏图标的样式效果
- 优化设置面板的样式效果
- 修复 `art.fullscreen` 监听状态错误的问题
- 添加 `artplayer-plugin-control` 插件,用于改变控制栏样式
## [4.5.12] - 2022-11-20
- 修复 `art.loop = []` 的显示 `bug`
- 修复 `art.loop = []` 的显示 `bug`
## [4.5.11] - 2022-11-6
- 新增 `Artplayer.CONTEXTMENU` 用于设置是否显示右键菜单,默认为 `true`
- 移动设备 `Whitelist` 功能默认为 `true`,即全部移动设备都使用播放器 `UI`
- 新增 `Artplayer.CONTEXTMENU` 用于设置是否显示右键菜单,默认为 `true`
- 移动设备 `Whitelist` 功能默认为 `true`,即全部移动设备都使用播放器 `UI`
## [4.5.10] - 2022-11-5
- 修复字幕在 `firefox` 不显示的问题:[#pull/415](https://github.com/zhw2590582/ArtPlayer/pull/415)
- 信息弹窗支持点击选中视频属性文本值
- 修复字幕在 `firefox` 不显示的问题:[#pull/415](https://github.com/zhw2590582/ArtPlayer/pull/415)
- 信息弹窗支持点击选中视频属性文本值
## [4.5.9] - 2022-11-5
- 添加 `art.type` 属性,用于获取和设置视频类型
- 添加 `art.video` 属性,用于获取 `video` 元素
- 添加 `artplayer-plugin-iframe` 插件,用于控制 `iframe` 里的播放器
- 添加 `artplayer-plugin-hls-quality` 插件,用于添加 `Hls` 画质列表到播放器
- 新增 `Artplayer.PLAYBACK_RATE` 用于设置默认播放速度,默认 `[0.5, 0.75, 1, 1.25, 1.5, 2]`
- 新增 `Artplayer.ASPECT_RATIO` 用于设置默认长宽比,默认 `['default', '4:3', '16:9']`
- 新增 `Artplayer.FLIP` 用于设置默认翻转功能,默认 `['normal', 'horizontal', 'vertical']`
- 新增 `Artplayer.PROGRESS_HEIGHT` 用于设置进度条高度,默认为 `4`
- 添加 `legacy.js` 版本,用于兼容更老的浏览器,但相对体积较大
- 移除 `examples` 目录,不再提供 `vue.js` 和 `react.js` 的例子文件
- 添加 `art.type` 属性,用于获取和设置视频类型
- 添加 `art.video` 属性,用于获取 `video` 元素
- 添加 `artplayer-plugin-iframe` 插件,用于控制 `iframe` 里的播放器
- 添加 `artplayer-plugin-hls-quality` 插件,用于添加 `Hls` 画质列表到播放器
- 新增 `Artplayer.PLAYBACK_RATE` 用于设置默认播放速度,默认 `[0.5, 0.75, 1, 1.25, 1.5, 2]`
- 新增 `Artplayer.ASPECT_RATIO` 用于设置默认长宽比,默认 `['default', '4:3', '16:9']`
- 新增 `Artplayer.FLIP` 用于设置默认翻转功能,默认 `['normal', 'horizontal', 'vertical']`
- 新增 `Artplayer.PROGRESS_HEIGHT` 用于设置进度条高度,默认为 `4`
- 添加 `legacy.js` 版本,用于兼容更老的浏览器,但相对体积较大
- 移除 `examples` 目录,不再提供 `vue.js` 和 `react.js` 的例子文件
## [4.5.8] - 2022-10-9
- 添加 `farsi` 语言
- 新增 `Artplayer.DEBUG` 用于打印 `debug` 信息,默认为 `false`
- 新增 `art.setting.update()` 用于动态更新设置面板
- 优化 `artplayer.d.ts`
- 添加 `farsi` 语言
- 新增 `Artplayer.DEBUG` 用于打印 `debug` 信息,默认为 `false`
- 新增 `art.setting.update()` 用于动态更新设置面板
- 优化 `artplayer.d.ts`
## [4.5.7] - 2022-9-28
- 新增 `Artplayer.VOLUME_STEP` 用于控制调整 `音量` 的步长,默认为 `0.1`
- 新增 `Artplayer.SEEK_STEP` 用于控制调整 `快进/快退` 的步长,默认为 `5` 秒
- 修复部分 `svg` 图标在移动端不显示的问题
- 修复在桌面端进度条不能同时点击和拖动的问题
- 修复在移动端进度条不能点击和拖动的问题
- 新增 `art.isRotate` 属性,用于识别是否自动全屏旋转
- 设置面板 `range` 添加 `onChange` 选项,可以实时获取当前值
- 新增 `Artplayer.VOLUME_STEP` 用于控制调整 `音量` 的步长,默认为 `0.1`
- 新增 `Artplayer.SEEK_STEP` 用于控制调整 `快进/快退` 的步长,默认为 `5` 秒
- 修复部分 `svg` 图标在移动端不显示的问题
- 修复在桌面端进度条不能同时点击和拖动的问题
- 修复在移动端进度条不能点击和拖动的问题
- 新增 `art.isRotate` 属性,用于识别是否自动全屏旋转
- 设置面板 `range` 添加 `onChange` 选项,可以实时获取当前值
```js
var art = new Artplayer({
@@ -197,30 +276,30 @@ var art = new Artplayer({
## [4.5.6] - 2022-9-19
- 修复 `hls.js` 在 `Safari` 播放失效的问题
- 修复 `hls.js` 在 `Safari` 播放失效的问题
## [4.5.5] - 2022-9-19
- 广告插件添加 `option.muted` 选项,用于静音自动播放广告
- 弹幕库插件暴露 `art.plugins.artplayerPluginDanmuku.reset()` 方法,用于清空当前弹幕显示
- 弹幕库插件暴露 `art.plugins.artplayerPluginDanmuku.option` 属性,用于获取当前弹幕配置
- 修复在 `IOS` 全屏模式下,字幕失效的问题
- 添加 `es` 语言
- 广告插件添加 `option.muted` 选项,用于静音自动播放广告
- 弹幕库插件暴露 `art.plugins.artplayerPluginDanmuku.reset()` 方法,用于清空当前弹幕显示
- 弹幕库插件暴露 `art.plugins.artplayerPluginDanmuku.option` 属性,用于获取当前弹幕配置
- 修复在 `IOS` 全屏模式下,字幕失效的问题
- 添加 `es` 语言
## [4.5.4] - 2022-8-1
### Added
- 新增 `Artplayer.AUTO_PLAYBACK_MIN` 用于控制最小可以记忆播放的进度值,默认为 `5` 秒
- 新增 `Artplayer.TOUCH_MOVE_RATIO` 用于控制移动端进度条拖放比例,默认为 `0.5`
- `option.thumbnails` 添加可选的 `width` 和 `height`
- 新增播放器编号选项 `option.id`,可用于记忆播放时的唯一标识
- 新增 `Artplayer.AUTO_PLAYBACK_MIN` 用于控制最小可以记忆播放的进度值,默认为 `5` 秒
- 新增 `Artplayer.TOUCH_MOVE_RATIO` 用于控制移动端进度条拖放比例,默认为 `0.5`
- `option.thumbnails` 添加可选的 `width` 和 `height`
- 新增播放器编号选项 `option.id`,可用于记忆播放时的唯一标识
## [4.5.3] - 2022-7-13
### Added
- `url` 选项允许传空字符串,可用于异步设置 `art.url`
- `url` 选项允许传空字符串,可用于异步设置 `art.url`
```js
const art = new Artplayer({
@@ -233,7 +312,7 @@ setTimeout(() => {
}, 1000);
```
- `art.play()` 方法统一返回 `Promise`, `play` 事件也改为异步触发
- `art.play()` 方法统一返回 `Promise`, `play` 事件也改为异步触发
```js
const art = new Artplayer({
@@ -251,7 +330,7 @@ art.on('ready', async () => {
});
```
- 新增 `airplay` (隔空播放) 功能,当前只在 Safari 下可用
- 新增 `airplay` (隔空播放) 功能,当前只在 Safari 下可用
```js
const art = new Artplayer({
@@ -265,77 +344,77 @@ const art = new Artplayer({
### Added
- 优化自动回放功能,让用户自行选择
- 优化自动回放功能,让用户自行选择
## [4.5.0] - 2022-6-21
### Added
- 移除内置广告功能
- 新增广告插件
- 移除内置广告功能
- 新增广告插件
## [4.4.7] - 2022-6-13
### Added
- 兼容弹幕库 d.ts
- 更新依赖库
- 兼容弹幕库 d.ts
- 更新依赖库
## [4.4.6] - 2022-6-11
### Added
- 添加弹幕库 d.ts
- 调整字幕字体大小参数
- 优化正则解析 xml 弹幕
- 添加弹幕库 d.ts
- 调整字幕字体大小参数
- 优化正则解析 xml 弹幕
## [4.4.5] - 2022-6-2
### Added
- 修复迷你模式时,主题色缺失的 bug
- 修复迷你模式时,主题色缺失的 bug
## [4.4.3] - 2022-05-26
### Added
- 修复弹幕库销毁时,自定义挂载输入框的残留
- 修复迷你模式的尺寸计算错误
- 修复弹幕库销毁时,自定义挂载输入框的残留
- 修复迷你模式的尺寸计算错误
## [4.4.2] - 2022-05-20
### Added
- 移除播放器 UI 初始化的 video:loadedmetadata 事件
- 弹幕库暴露 load 方法,用于切换弹幕源
- 添加 error 图标,出现于视频加载错误达到上限后
- 修复 setting 多次初始化时产生的 bug
- 移除播放器 UI 初始化的 video:loadedmetadata 事件
- 弹幕库暴露 load 方法,用于切换弹幕源
- 添加 error 图标,出现于视频加载错误达到上限后
- 修复 setting 多次初始化时产生的 bug
## [4.4.1] - 2022-05-17
### Added
- 添加 art.isInput 属性,当为 true 的时候不自动隐藏控制栏,如弹幕正在输入时
- 添加 art.isLock 属性,在移动端当为 true 的时候不能操作快进、开始和暂停
- 修复弹幕输入框的固定宽度 bug
- 设置面板支持 range 和 onRange 选项
- 添加 isAndroid 和 isIOS 工具函数
- 弹幕库添加 lockTime 选项,可自定义输入框的锁定时间
- 弹幕库添加 maxLength 选项,控制输入最大可输入字数
- 弹幕库添加 minWidth 选项,控制输入框最小宽度
- 弹幕库添加 maxWidth 选项,控制输入框最大宽度
- 弹幕库添加 mount 选项,控制输入框自定义挂载位置
- 弹幕库添加 beforeEmit 选项,控制弹幕发送前的校验
- 弹幕库添加 theme 选项,控制输入框自定义挂载的主题色
- 添加 art.isInput 属性,当为 true 的时候不自动隐藏控制栏,如弹幕正在输入时
- 添加 art.isLock 属性,在移动端当为 true 的时候不能操作快进、开始和暂停
- 修复弹幕输入框的固定宽度 bug
- 设置面板支持 range 和 onRange 选项
- 添加 isAndroid 和 isIOS 工具函数
- 弹幕库添加 lockTime 选项,可自定义输入框的锁定时间
- 弹幕库添加 maxLength 选项,控制输入最大可输入字数
- 弹幕库添加 minWidth 选项,控制输入框最小宽度
- 弹幕库添加 maxWidth 选项,控制输入框最大宽度
- 弹幕库添加 mount 选项,控制输入框自定义挂载位置
- 弹幕库添加 beforeEmit 选项,控制弹幕发送前的校验
- 弹幕库添加 theme 选项,控制输入框自定义挂载的主题色
## [4.4.0] - 2022-05-15
### Added
- 设置面板支持 switch 和 onSwitch 选项
- 弹幕库插件添加设置面板和弹幕发送
- 弹幕库的选项添加默认模式和默认字号
- 弹幕库字号支持按播放器的百分百
- 修复翻转设置的图标缺失
- 默认播放器获取了焦点后,不会自动隐藏控制栏
- 删除字幕开关按钮,需要自行配置字幕开关
- 设置面板支持 switch 和 onSwitch 选项
- 弹幕库插件添加设置面板和弹幕发送
- 弹幕库的选项添加默认模式和默认字号
- 弹幕库字号支持按播放器的百分百
- 修复翻转设置的图标缺失
- 默认播放器获取了焦点后,不会自动隐藏控制栏
- 删除字幕开关按钮,需要自行配置字幕开关
+35 -2
View File
@@ -12,6 +12,7 @@
<img src="https://img.shields.io/npm/dm/artplayer.svg?sanitize=true" alt="Downloads">
<img src="https://img.shields.io/npm/v/artplayer.svg?sanitize=true" alt="Version">
<img src="https://img.shields.io/npm/l/artplayer.svg?sanitize=true" alt="License">
<img src="https://data.jsdelivr.com/v1/package/npm/artplayer/badge?style=rounded" alt="jsdelivr">
</p>
<p align="center">
@@ -93,6 +94,36 @@ var art = new Artplayer({
});
```
## Plugins
- [artplayer-plugin-danmuku](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-danmuku/index.js&example=danmuku)
- [artplayer-plugin-danmuku-mask](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-danmuku/index.js%0A./uncompiled/artplayer-plugin-danmuku-mask/index.js&example=danmuku.mask) (WIP)
- [artplayer-plugin-ads](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-ads/index.js&example=ads) (WIP)
- [artplayer-plugin-iframe](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-iframe/index.js&example=iframe)
- [artplayer-plugin-hls-control](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js%0A./uncompiled/artplayer-plugin-hls-control/index.js&example=hls.control)
- [artplayer-plugin-dash-control](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js%0A./uncompiled/artplayer-plugin-dash-control/index.js&example=dash.control)
- [artplayer-plugin-vtt-thumbnail](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-vtt-thumbnail/index.js&example=vtt.thumbnail)
- [artplayer-plugin-multiple-subtitles](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-multiple-subtitles/index.js&example=multiple.subtitles)
- [artplayer-plugin-libass](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-libass/index.js&example=libass)
- [artplayer-plugin-chromecast](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-chromecast/index.js&example=chromecast)
- [artplayer-plugin-vast](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-vast/index.js&example=vast)
- [artplayer-plugin-chapter](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-chapter/index.js&example=chapter)
- [artplayer-plugin-auto-thumbnail](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-auto-thumbnail/index.js&example=auto.thumbnail)
- [artplayer-plugin-ambilight](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-ambilight/index.js&example=ambilight)
- [artplayer-plugin-asr](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-asr/index.js&example=asr) (WIP)
## Libraries
- [hls.js](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js&example=hls)
- [dash.js](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js&example=dash)
- [flv.js](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js&example=flv)
- [mpegts.js](https://artplayer.org/?libs=https://cdn.jsdelivr.net/npm/mpegts.js@1.7.3/dist/mpegts.min.js&example=mpegts)
- [webtorrent.js](https://artplayer.org/?libs=https://cdn.jsdelivr.net/npm/webtorrent@1/webtorrent.min.js&example=webtorrent)
## Proxys
- [Canvas](https://artplayer.org/?libs=./uncompiled/artplayer-proxy-canvas/index.js&example=canvas)
## Changelog
[CHANGELOG_CN.md](./CHANGELOG_CN.md)
@@ -107,13 +138,15 @@ We accept donations through these channels:
![pay](./images/pay.png)
- [Patreon](https://www.patreon.com/artplayer)
- [Paypal](https://www.paypal.me/harveyzack)
- [Patreon](https://www.patreon.com/artplayer)
- [Paypal](https://www.paypal.me/harveyzack)
## QQ Group
![QQ Group](./images/qqgroup.png)
[![Powered by DartNode](https://dartnode.com/branding/DN-Open-Source-sm.png)](https://dartnode.com 'Powered by DartNode - Free VPS for Open Source')
## License
MIT © Harvey Zack
+1
View File
@@ -0,0 +1 @@
google.com, pub-8579453810848662, DIRECT, f08c47fec0942fa0
@@ -0,0 +1,10 @@
# MediaPipe JavaScript Solutions
MediaPipe offers out of the box solutions to use our ML technology with live and streaming media.
Visit us as [mediapipe.dev]()
See live demos of our JavaScript solutions at [code.mediapipe.dev/codepen]()
For more information on each of the solutions and how to use them, visit https://google.github.io/mediapipe/getting_started/javascript.
+111
View File
@@ -0,0 +1,111 @@
/**
* @fileoverview Declarations for the face tracking API.
*/
/**
* Version number of this package.
*/
export const VERSION: string;
/**
* We support several ways to get image inputs.
*/
export type InputImage = HTMLVideoElement | HTMLImageElement | HTMLCanvasElement;
/**
* Legal inputs.
*/
export interface InputMap {
image: InputImage;
}
/**
* GpuBuffers should all be compatible with Canvas' `drawImage`
*/
type GpuBuffer = HTMLCanvasElement | HTMLImageElement | ImageBitmap;
/**
* Possible results from SelfieSegmentation.
*/
export interface Results {
image: GpuBuffer;
segmentationMask: GpuBuffer;
}
/**
* Configurable options for SelfieSegmentation.
*/
export interface Options {
selfieMode?: boolean;
modelSelection?: number;
}
/**
* Listener for any results from SelfieSegmentation.
*/
export type ResultsListener = (results: Results) => (Promise<void>|void);
/**
* Contains all of the setup options to drive the face solution.
*/
export interface SelfieSegmentationConfig {
locateFile?: (path: string, prefix?: string) => string;
}
/**
* Declares the interface of SelfieSegmentation.
*/
declare interface SelfieSegmentationInterface {
close(): Promise<void>;
onResults(listener: ResultsListener): void;
initialize(): Promise<void>;
reset(): void;
send(inputs: InputMap): Promise<void>;
setOptions(options: Options): void;
}
/**
* Encapsulates the entire SelfieSegmentation solution. All that is needed from the
* developer is the source of the image data. The user will call `send`
* repeatedly and if a face is detected, then the user can receive callbacks
* with this metadata.
*/
export declare class SelfieSegmentation implements SelfieSegmentationInterface {
constructor(config?: SelfieSegmentationConfig);
/**
* Shuts down the object. Call before creating a new instance.
*/
close(): Promise<void>;
/**
* Registers a single callback that will carry any results that occur
* after calling Send().
*/
onResults(listener: ResultsListener): void;
/**
* Initializes the solution. This includes loading ML models and mediapipe
* configurations, as well as setting up potential listeners for metadata. If
* `initialize` is not called manually, then it will be called the first time
* the developer calls `send`.
*/
initialize(): Promise<void>;
/**
* Tells the graph to restart before the next frame is sent.
*/
reset(): void;
/**
* Processes a single frame of data, which depends on the options sent to the
* constructor.
*/
send(inputs: InputMap): Promise<void>;
/**
* Adjusts options in the solution. This may trigger a graph reload the next
* time the graph tries to run.
*/
setOptions(options: Options): void;
}
@@ -0,0 +1,27 @@
{
"name": "@mediapipe/selfie_segmentation",
"version": "0.1.1675465747",
"description": "Mediapipe Selfie Segmentation Solution",
"main": "selfie_segmentation.js",
"module": "selfie_segmentation.js",
"jsdelivr": "selfie_segmentation.js",
"unpkg": "selfie_segmentation.js",
"types": "index.d.ts",
"author": "mhays@google.com",
"license": "Apache-2.0",
"homepage": "https://google.github.io/mediapipe/solutions/selfie_segmentation",
"keywords": [ "AR", "ML", "Augmented" ],
"devDependencies": {
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
},
"browser": {
"node-fetch": false,
"util": false,
"crypto": false
},
"sideEffects" : []
}
@@ -0,0 +1,93 @@
(function(){/*
Copyright The Closure Library Authors.
SPDX-License-Identifier: Apache-2.0
*/
'use strict';var x;function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
function ca(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var y=ca(this);function z(a,b){if(b)a:{var c=y;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&ba(c,a,{configurable:!0,writable:!0,value:b})}}
z("Symbol",function(a){function b(g){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(g||"")+"_"+e++,g)}function c(g,f){this.h=g;ba(this,"description",{configurable:!0,writable:!0,value:f})}if(a)return a;c.prototype.toString=function(){return this.h};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",e=0;return b});
z("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<b.length;c++){var d=y[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&ba(d.prototype,a,{configurable:!0,writable:!0,value:function(){return da(aa(this))}})}return a});function da(a){a={next:a};a[Symbol.iterator]=function(){return this};return a}
function A(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:aa(a)}}function ea(a){if(!(a instanceof Array)){a=A(a);for(var b,c=[];!(b=a.next()).done;)c.push(b.value);a=c}return a}var fa="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(a[e]=d[e])}return a};z("Object.assign",function(a){return a||fa});
var ha="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},ia;if("function"==typeof Object.setPrototypeOf)ia=Object.setPrototypeOf;else{var ja;a:{var ka={a:!0},la={};try{la.__proto__=ka;ja=la.a;break a}catch(a){}ja=!1}ia=ja?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var ma=ia;
function na(a,b){a.prototype=ha(b.prototype);a.prototype.constructor=a;if(ma)ma(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.za=b.prototype}function oa(){this.m=!1;this.j=null;this.i=void 0;this.h=1;this.v=this.s=0;this.l=null}function pa(a){if(a.m)throw new TypeError("Generator is already running");a.m=!0}oa.prototype.u=function(a){this.i=a};
function qa(a,b){a.l={ma:b,na:!0};a.h=a.s||a.v}oa.prototype.return=function(a){this.l={return:a};this.h=this.v};function D(a,b,c){a.h=c;return{value:b}}function ra(a){this.h=new oa;this.i=a}function sa(a,b){pa(a.h);var c=a.h.j;if(c)return ta(a,"return"in c?c["return"]:function(d){return{value:d,done:!0}},b,a.h.return);a.h.return(b);return ua(a)}
function ta(a,b,c,d){try{var e=b.call(a.h.j,c);if(!(e instanceof Object))throw new TypeError("Iterator result "+e+" is not an object");if(!e.done)return a.h.m=!1,e;var g=e.value}catch(f){return a.h.j=null,qa(a.h,f),ua(a)}a.h.j=null;d.call(a.h,g);return ua(a)}function ua(a){for(;a.h.h;)try{var b=a.i(a.h);if(b)return a.h.m=!1,{value:b.value,done:!1}}catch(c){a.h.i=void 0,qa(a.h,c)}a.h.m=!1;if(a.h.l){b=a.h.l;a.h.l=null;if(b.na)throw b.ma;return{value:b.return,done:!0}}return{value:void 0,done:!0}}
function va(a){this.next=function(b){pa(a.h);a.h.j?b=ta(a,a.h.j.next,b,a.h.u):(a.h.u(b),b=ua(a));return b};this.throw=function(b){pa(a.h);a.h.j?b=ta(a,a.h.j["throw"],b,a.h.u):(qa(a.h,b),b=ua(a));return b};this.return=function(b){return sa(a,b)};this[Symbol.iterator]=function(){return this}}function wa(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function g(f){f.done?d(f.value):Promise.resolve(f.value).then(b,c).then(g,e)}g(a.next())})}
function E(a){return wa(new va(new ra(a)))}
z("Promise",function(a){function b(f){this.i=0;this.j=void 0;this.h=[];this.u=!1;var h=this.l();try{f(h.resolve,h.reject)}catch(k){h.reject(k)}}function c(){this.h=null}function d(f){return f instanceof b?f:new b(function(h){h(f)})}if(a)return a;c.prototype.i=function(f){if(null==this.h){this.h=[];var h=this;this.j(function(){h.m()})}this.h.push(f)};var e=y.setTimeout;c.prototype.j=function(f){e(f,0)};c.prototype.m=function(){for(;this.h&&this.h.length;){var f=this.h;this.h=[];for(var h=0;h<f.length;++h){var k=
f[h];f[h]=null;try{k()}catch(l){this.l(l)}}}this.h=null};c.prototype.l=function(f){this.j(function(){throw f;})};b.prototype.l=function(){function f(l){return function(m){k||(k=!0,l.call(h,m))}}var h=this,k=!1;return{resolve:f(this.I),reject:f(this.m)}};b.prototype.I=function(f){if(f===this)this.m(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof b)this.L(f);else{a:switch(typeof f){case "object":var h=null!=f;break a;case "function":h=!0;break a;default:h=!1}h?this.F(f):this.s(f)}};
b.prototype.F=function(f){var h=void 0;try{h=f.then}catch(k){this.m(k);return}"function"==typeof h?this.M(h,f):this.s(f)};b.prototype.m=function(f){this.v(2,f)};b.prototype.s=function(f){this.v(1,f)};b.prototype.v=function(f,h){if(0!=this.i)throw Error("Cannot settle("+f+", "+h+"): Promise already settled in state"+this.i);this.i=f;this.j=h;2===this.i&&this.K();this.H()};b.prototype.K=function(){var f=this;e(function(){if(f.D()){var h=y.console;"undefined"!==typeof h&&h.error(f.j)}},1)};b.prototype.D=
function(){if(this.u)return!1;var f=y.CustomEvent,h=y.Event,k=y.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):"function"===typeof h?f=new h("unhandledrejection",{cancelable:!0}):(f=y.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.j;return k(f)};b.prototype.H=function(){if(null!=this.h){for(var f=0;f<this.h.length;++f)g.i(this.h[f]);this.h=null}};var g=new c;b.prototype.L=
function(f){var h=this.l();f.T(h.resolve,h.reject)};b.prototype.M=function(f,h){var k=this.l();try{f.call(h,k.resolve,k.reject)}catch(l){k.reject(l)}};b.prototype.then=function(f,h){function k(p,n){return"function"==typeof p?function(q){try{l(p(q))}catch(t){m(t)}}:n}var l,m,r=new b(function(p,n){l=p;m=n});this.T(k(f,l),k(h,m));return r};b.prototype.catch=function(f){return this.then(void 0,f)};b.prototype.T=function(f,h){function k(){switch(l.i){case 1:f(l.j);break;case 2:h(l.j);break;default:throw Error("Unexpected state: "+
l.i);}}var l=this;null==this.h?g.i(k):this.h.push(k);this.u=!0};b.resolve=d;b.reject=function(f){return new b(function(h,k){k(f)})};b.race=function(f){return new b(function(h,k){for(var l=A(f),m=l.next();!m.done;m=l.next())d(m.value).T(h,k)})};b.all=function(f){var h=A(f),k=h.next();return k.done?d([]):new b(function(l,m){function r(q){return function(t){p[q]=t;n--;0==n&&l(p)}}var p=[],n=0;do p.push(void 0),n++,d(k.value).T(r(p.length-1),m),k=h.next();while(!k.done)})};return b});
function xa(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var g=c++;return{value:b(g,a[g]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e}z("Array.prototype.keys",function(a){return a?a:function(){return xa(this,function(b){return b})}});
z("Array.prototype.fill",function(a){return a?a:function(b,c,d){var e=this.length||0;0>c&&(c=Math.max(0,e+c));if(null==d||d>e)d=e;d=Number(d);0>d&&(d=Math.max(0,e+d));for(c=Number(c||0);c<d;c++)this[c]=b;return this}});function F(a){return a?a:Array.prototype.fill}z("Int8Array.prototype.fill",F);z("Uint8Array.prototype.fill",F);z("Uint8ClampedArray.prototype.fill",F);z("Int16Array.prototype.fill",F);z("Uint16Array.prototype.fill",F);z("Int32Array.prototype.fill",F);
z("Uint32Array.prototype.fill",F);z("Float32Array.prototype.fill",F);z("Float64Array.prototype.fill",F);z("Object.is",function(a){return a?a:function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c}});z("Array.prototype.includes",function(a){return a?a:function(b,c){var d=this;d instanceof String&&(d=String(d));var e=d.length;c=c||0;for(0>c&&(c=Math.max(c+e,0));c<e;c++){var g=d[c];if(g===b||Object.is(g,b))return!0}return!1}});
z("String.prototype.includes",function(a){return a?a:function(b,c){if(null==this)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return-1!==this.indexOf(b,c||0)}});var ya=this||self;
function Aa(a,b){a=a.split(".");var c=ya;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b};function Ba(a){var b;a:{if(b=ya.navigator)if(b=b.userAgent)break a;b=""}return-1!=b.indexOf(a)};var Ca=Array.prototype.map?function(a,b){return Array.prototype.map.call(a,b,void 0)}:function(a,b){for(var c=a.length,d=Array(c),e="string"===typeof a?a.split(""):a,g=0;g<c;g++)g in e&&(d[g]=b.call(void 0,e[g],g,a));return d};var Da={},Ea=null;function Fa(a){var b=a.length,c=3*b/4;c%3?c=Math.floor(c):-1!="=.".indexOf(a[b-1])&&(c=-1!="=.".indexOf(a[b-2])?c-2:c-1);var d=new Uint8Array(c),e=0;Ga(a,function(g){d[e++]=g});return e!==c?d.subarray(0,e):d}
function Ga(a,b){function c(k){for(;d<a.length;){var l=a.charAt(d++),m=Ea[l];if(null!=m)return m;if(!/^[\s\xa0]*$/.test(l))throw Error("Unknown base64 encoding at char: "+l);}return k}Ha();for(var d=0;;){var e=c(-1),g=c(0),f=c(64),h=c(64);if(64===h&&-1===e)break;b(e<<2|g>>4);64!=f&&(b(g<<4&240|f>>2),64!=h&&b(f<<6&192|h))}}
function Ha(){if(!Ea){Ea={};for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),b=["+/=","+/","-_=","-_.","-_"],c=0;5>c;c++){var d=a.concat(b[c].split(""));Da[c]=d;for(var e=0;e<d.length;e++){var g=d[e];void 0===Ea[g]&&(Ea[g]=e)}}}};var Ia="undefined"!==typeof Uint8Array,Ja=!(Ba("Trident")||Ba("MSIE"))&&"function"===typeof ya.btoa;
function Ka(a){if(!Ja){var b;void 0===b&&(b=0);Ha();b=Da[b];for(var c=Array(Math.floor(a.length/3)),d=b[64]||"",e=0,g=0;e<a.length-2;e+=3){var f=a[e],h=a[e+1],k=a[e+2],l=b[f>>2];f=b[(f&3)<<4|h>>4];h=b[(h&15)<<2|k>>6];k=b[k&63];c[g++]=l+f+h+k}l=0;k=d;switch(a.length-e){case 2:l=a[e+1],k=b[(l&15)<<2]||d;case 1:a=a[e],c[g]=b[a>>2]+b[(a&3)<<4|l>>4]+k+d}return c.join("")}for(b="";10240<a.length;)b+=String.fromCharCode.apply(null,a.subarray(0,10240)),a=a.subarray(10240);b+=String.fromCharCode.apply(null,
a);return btoa(b)}var La=RegExp("[-_.]","g");function Ma(a){switch(a){case "-":return"+";case "_":return"/";case ".":return"=";default:return""}}function Na(a){if(!Ja)return Fa(a);La.test(a)&&(a=a.replace(La,Ma));a=atob(a);for(var b=new Uint8Array(a.length),c=0;c<a.length;c++)b[c]=a.charCodeAt(c);return b}var Oa;function Pa(){return Oa||(Oa=new Uint8Array(0))}var Qa={};var Ra="function"===typeof Uint8Array.prototype.slice,G=0,H=0;function Sa(a){var b=0>a;a=Math.abs(a);var c=a>>>0;a=Math.floor((a-c)/4294967296);b&&(c=A(Ta(c,a)),b=c.next().value,a=c.next().value,c=b);G=c>>>0;H=a>>>0}var Ua="function"===typeof BigInt;function Ta(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};function Va(a,b){this.i=a>>>0;this.h=b>>>0}
function Wa(a){if(!a)return Xa||(Xa=new Va(0,0));if(!/^-?\d+$/.test(a))return null;if(16>a.length)Sa(Number(a));else if(Ua)a=BigInt(a),G=Number(a&BigInt(4294967295))>>>0,H=Number(a>>BigInt(32)&BigInt(4294967295));else{var b=+("-"===a[0]);H=G=0;for(var c=a.length,d=b,e=(c-b)%6+b;e<=c;d=e,e+=6)d=Number(a.slice(d,e)),H*=1E6,G=1E6*G+d,4294967296<=G&&(H+=G/4294967296|0,G%=4294967296);b&&(b=A(Ta(G,H)),a=b.next().value,b=b.next().value,G=a,H=b)}return new Va(G,H)}var Xa;function Ya(a,b){return Error("Invalid wire type: "+a+" (at position "+b+")")}function Za(){return Error("Failed to read varint, encoding is invalid.")}function $a(a,b){return Error("Tried to read past the end of the data "+b+" > "+a)};function K(){throw Error("Invalid UTF8");}function ab(a,b){b=String.fromCharCode.apply(null,b);return null==a?b:a+b}var bb=void 0,cb,db="undefined"!==typeof TextDecoder,eb,fb="undefined"!==typeof TextEncoder;var gb;function hb(a){if(a!==Qa)throw Error("illegal external caller");}function ib(a,b){hb(b);this.V=a;if(null!=a&&0===a.length)throw Error("ByteString should be constructed with non-empty values");}function jb(){return gb||(gb=new ib(null,Qa))}function kb(a){hb(Qa);var b=a.V;b=null==b||Ia&&null!=b&&b instanceof Uint8Array?b:"string"===typeof b?Na(b):null;return null==b?b:a.V=b};function lb(a){if("string"===typeof a)return{buffer:Na(a),C:!1};if(Array.isArray(a))return{buffer:new Uint8Array(a),C:!1};if(a.constructor===Uint8Array)return{buffer:a,C:!1};if(a.constructor===ArrayBuffer)return{buffer:new Uint8Array(a),C:!1};if(a.constructor===ib)return{buffer:kb(a)||Pa(),C:!0};if(a instanceof Uint8Array)return{buffer:new Uint8Array(a.buffer,a.byteOffset,a.byteLength),C:!1};throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers");
};function mb(a,b){this.i=null;this.m=!1;this.h=this.j=this.l=0;nb(this,a,b)}function nb(a,b,c){c=void 0===c?{}:c;a.S=void 0===c.S?!1:c.S;b&&(b=lb(b),a.i=b.buffer,a.m=b.C,a.l=0,a.j=a.i.length,a.h=a.l)}mb.prototype.reset=function(){this.h=this.l};function L(a,b){a.h=b;if(b>a.j)throw $a(a.j,b);}
function ob(a){var b=a.i,c=a.h,d=b[c++],e=d&127;if(d&128&&(d=b[c++],e|=(d&127)<<7,d&128&&(d=b[c++],e|=(d&127)<<14,d&128&&(d=b[c++],e|=(d&127)<<21,d&128&&(d=b[c++],e|=d<<28,d&128&&b[c++]&128&&b[c++]&128&&b[c++]&128&&b[c++]&128&&b[c++]&128)))))throw Za();L(a,c);return e}function pb(a,b){if(0>b)throw Error("Tried to read a negative byte length: "+b);var c=a.h,d=c+b;if(d>a.j)throw $a(b,a.j-c);a.h=d;return c}var qb=[];function rb(){this.h=[]}rb.prototype.length=function(){return this.h.length};rb.prototype.end=function(){var a=this.h;this.h=[];return a};function sb(a,b,c){for(;0<c||127<b;)a.h.push(b&127|128),b=(b>>>7|c<<25)>>>0,c>>>=7;a.h.push(b)}function M(a,b){for(;127<b;)a.h.push(b&127|128),b>>>=7;a.h.push(b)};function tb(a,b){if(qb.length){var c=qb.pop();nb(c,a,b);a=c}else a=new mb(a,b);this.h=a;this.j=this.h.h;this.i=this.l=-1;this.setOptions(b)}tb.prototype.setOptions=function(a){a=void 0===a?{}:a;this.ca=void 0===a.ca?!1:a.ca};tb.prototype.reset=function(){this.h.reset();this.j=this.h.h;this.i=this.l=-1};
function ub(a){var b=a.h;if(b.h==b.j)return!1;a.j=a.h.h;var c=ob(a.h)>>>0;b=c>>>3;c&=7;if(!(0<=c&&5>=c))throw Ya(c,a.j);if(1>b)throw Error("Invalid field number: "+b+" (at position "+a.j+")");a.l=b;a.i=c;return!0}
function vb(a){switch(a.i){case 0:if(0!=a.i)vb(a);else a:{a=a.h;for(var b=a.h,c=b+10,d=a.i;b<c;)if(0===(d[b++]&128)){L(a,b);break a}throw Za();}break;case 1:a=a.h;L(a,a.h+8);break;case 2:2!=a.i?vb(a):(b=ob(a.h)>>>0,a=a.h,L(a,a.h+b));break;case 5:a=a.h;L(a,a.h+4);break;case 3:b=a.l;do{if(!ub(a))throw Error("Unmatched start-group tag: stream EOF");if(4==a.i){if(a.l!=b)throw Error("Unmatched end-group tag");break}vb(a)}while(1);break;default:throw Ya(a.i,a.j);}}var wb=[];function xb(){this.j=[];this.i=0;this.h=new rb}function N(a,b){0!==b.length&&(a.j.push(b),a.i+=b.length)}function yb(a,b){if(b=b.R){N(a,a.h.end());for(var c=0;c<b.length;c++)N(a,kb(b[c])||Pa())}};var O="function"===typeof Symbol&&"symbol"===typeof Symbol()?Symbol():void 0;function P(a,b){if(O)return a[O]|=b;if(void 0!==a.A)return a.A|=b;Object.defineProperties(a,{A:{value:b,configurable:!0,writable:!0,enumerable:!1}});return b}function zb(a,b){O?a[O]&&(a[O]&=~b):void 0!==a.A&&(a.A&=~b)}function Q(a){var b;O?b=a[O]:b=a.A;return null==b?0:b}function R(a,b){O?a[O]=b:void 0!==a.A?a.A=b:Object.defineProperties(a,{A:{value:b,configurable:!0,writable:!0,enumerable:!1}})}
function Ab(a){P(a,1);return a}function Bb(a,b){R(b,(a|0)&-51)}function Cb(a,b){R(b,(a|18)&-41)};var Db={};function Eb(a){return null!==a&&"object"===typeof a&&!Array.isArray(a)&&a.constructor===Object}var Fb,Gb=[];R(Gb,23);Fb=Object.freeze(Gb);function Hb(a){if(Q(a.o)&2)throw Error("Cannot mutate an immutable Message");}function Ib(a){var b=a.length;(b=b?a[b-1]:void 0)&&Eb(b)?b.g=1:(b={},a.push((b.g=1,b)))};function Jb(a){var b=a.i+a.G;return a.B||(a.B=a.o[b]={})}function S(a,b){return-1===b?null:b>=a.i?a.B?a.B[b]:void 0:a.o[b+a.G]}function U(a,b,c,d){Hb(a);Kb(a,b,c,d)}function Kb(a,b,c,d){a.j&&(a.j=void 0);b>=a.i||d?Jb(a)[b]=c:(a.o[b+a.G]=c,(a=a.B)&&b in a&&delete a[b])}function Lb(a,b,c,d){var e=S(a,b);Array.isArray(e)||(e=Fb);var g=Q(e);g&1||Ab(e);if(d)g&2||P(e,2),c&1||Object.freeze(e);else{d=!(c&2);var f=g&2;c&1||!f?d&&g&16&&!f&&zb(e,16):(e=Ab(Array.prototype.slice.call(e)),Kb(a,b,e))}return e}
function Mb(a,b){var c=S(a,b);var d=null==c?c:"number"===typeof c||"NaN"===c||"Infinity"===c||"-Infinity"===c?Number(c):void 0;null!=d&&d!==c&&Kb(a,b,d);return d}
function Nb(a,b,c,d,e){a.h||(a.h={});var g=a.h[c],f=Lb(a,c,3,e);if(!g){var h=f;g=[];var k=!!(Q(a.o)&16);f=!!(Q(h)&2);var l=h;!e&&f&&(h=Array.prototype.slice.call(h));for(var m=f,r=0;r<h.length;r++){var p=h[r];var n=b,q=!1;q=void 0===q?!1:q;p=Array.isArray(p)?new n(p):q?new n:void 0;if(void 0!==p){n=p.o;var t=q=Q(n);f&&(t|=2);k&&(t|=16);t!=q&&R(n,t);n=t;m=m||!!(2&n);g.push(p)}}a.h[c]=g;k=Q(h);b=k|33;b=m?b&-9:b|8;k!=b&&(m=h,Object.isFrozen(m)&&(m=Array.prototype.slice.call(m)),R(m,b),h=m);l!==h&&Kb(a,
c,h);(e||d&&f)&&P(g,2);d&&Object.freeze(g);return g}e||(e=Object.isFrozen(g),d&&!e?Object.freeze(g):!d&&e&&(g=Array.prototype.slice.call(g),a.h[c]=g));return g}function Ob(a,b,c){var d=!!(Q(a.o)&2);b=Nb(a,b,c,d,d);a=Lb(a,c,3,d);if(!(d||Q(a)&8)){for(d=0;d<b.length;d++){c=b[d];if(Q(c.o)&2){var e=Pb(c,!1);e.j=c}else e=c;c!==e&&(b[d]=e,a[d]=e.o)}P(a,8)}return b}
function V(a,b,c){if(null!=c&&"number"!==typeof c)throw Error("Value of float/double field must be a number|null|undefined, found "+typeof c+": "+c);U(a,b,c)}function Qb(a,b,c,d,e){Hb(a);var g=Nb(a,c,b,!1,!1);c=null!=d?d:new c;a=Lb(a,b,2,!1);void 0!=e?(g.splice(e,0,c),a.splice(e,0,c.o)):(g.push(c),a.push(c.o));c.C()&&zb(a,8);return c}function Rb(a,b){return null==a?b:a}function W(a,b,c){c=void 0===c?0:c;return Rb(Mb(a,b),c)};var Sb;function Tb(a){switch(typeof a){case "number":return isFinite(a)?a:String(a);case "object":if(a)if(Array.isArray(a)){if(0!==(Q(a)&128))return a=Array.prototype.slice.call(a),Ib(a),a}else{if(Ia&&null!=a&&a instanceof Uint8Array)return Ka(a);if(a instanceof ib){var b=a.V;return null==b?"":"string"===typeof b?b:a.V=Ka(b)}}}return a};function Ub(a,b,c,d){if(null!=a){if(Array.isArray(a))a=Vb(a,b,c,void 0!==d);else if(Eb(a)){var e={},g;for(g in a)e[g]=Ub(a[g],b,c,d);a=e}else a=b(a,d);return a}}function Vb(a,b,c,d){var e=Q(a);d=d?!!(e&16):void 0;a=Array.prototype.slice.call(a);for(var g=0;g<a.length;g++)a[g]=Ub(a[g],b,c,d);c(e,a);return a}function Wb(a){return a.ja===Db?a.toJSON():Tb(a)}function Xb(a,b){a&128&&Ib(b)};function Yb(a,b,c){c=void 0===c?Cb:c;if(null!=a){if(Ia&&a instanceof Uint8Array)return a.length?new ib(new Uint8Array(a),Qa):jb();if(Array.isArray(a)){var d=Q(a);if(d&2)return a;if(b&&!(d&32)&&(d&16||0===d))return R(a,d|2),a;a=Vb(a,Yb,d&4?Cb:c,!0);b=Q(a);b&4&&b&2&&Object.freeze(a);return a}return a.ja===Db?Zb(a):a}}
function $b(a,b,c,d,e,g,f){if(a=a.h&&a.h[c]){d=Q(a);d&2?d=a:(g=Ca(a,Zb),Cb(d,g),Object.freeze(g),d=g);Hb(b);f=null==d?Fb:Ab([]);if(null!=d){g=!!d.length;for(a=0;a<d.length;a++){var h=d[a];g=g&&!(Q(h.o)&2);f[a]=h.o}g=(g?8:0)|1;a=Q(f);(a&g)!==g&&(Object.isFrozen(f)&&(f=Array.prototype.slice.call(f)),R(f,a|g));b.h||(b.h={});b.h[c]=d}else b.h&&(b.h[c]=void 0);Kb(b,c,f,e)}else U(b,c,Yb(d,g,f),e)}function Zb(a){if(Q(a.o)&2)return a;a=Pb(a,!0);P(a.o,2);return a}
function Pb(a,b){var c=a.o,d=[];P(d,16);var e=a.constructor.h;e&&d.push(e);e=a.B;if(e){d.length=c.length;d.fill(void 0,d.length,c.length);var g={};d[d.length-1]=g}0!==(Q(c)&128)&&Ib(d);b=b||a.C()?Cb:Bb;g=a.constructor;Sb=d;d=new g(d);Sb=void 0;a.R&&(d.R=a.R.slice());g=!!(Q(c)&16);for(var f=e?c.length-1:c.length,h=0;h<f;h++)$b(a,d,h-a.G,c[h],!1,g,b);if(e)for(var k in e)$b(a,d,+k,e[k],!0,g,b);return d};function X(a,b,c){null==a&&(a=Sb);Sb=void 0;var d=this.constructor.i||0,e=0<d,g=this.constructor.h,f=!1;if(null==a){a=g?[g]:[];var h=48;var k=!0;e&&(d=0,h|=128);R(a,h)}else{if(!Array.isArray(a))throw Error();if(g&&g!==a[0])throw Error();var l=h=P(a,0);if(k=0!==(16&l))(f=0!==(32&l))||(l|=32);if(e)if(128&l)d=0;else{if(0<a.length){var m=a[a.length-1];if(Eb(m)&&"g"in m){d=0;l|=128;delete m.g;var r=!0,p;for(p in m){r=!1;break}r&&a.pop()}}}else if(128&l)throw Error();h!==l&&R(a,l)}this.G=(g?0:-1)-d;this.h=
void 0;this.o=a;a:{g=this.o.length;d=g-1;if(g&&(g=this.o[d],Eb(g))){this.B=g;this.i=d-this.G;break a}void 0!==b&&-1<b?(this.i=Math.max(b,d+1-this.G),this.B=void 0):this.i=Number.MAX_VALUE}if(!e&&this.B&&"g"in this.B)throw Error('Unexpected "g" flag in sparse object of message that is not a group type.');if(c){b=k&&!f&&!0;e=this.i;var n;for(k=0;k<c.length;k++)f=c[k],f<e?(f+=this.G,(d=a[f])?ac(d,b):a[f]=Fb):(n||(n=Jb(this)),(d=n[f])?ac(d,b):n[f]=Fb)}}
X.prototype.toJSON=function(){return Vb(this.o,Wb,Xb)};X.prototype.C=function(){return!!(Q(this.o)&2)};function ac(a,b){if(Array.isArray(a)){var c=Q(a),d=1;!b||c&2||(d|=16);(c&d)!==d&&R(a,c|d)}}X.prototype.ja=Db;X.prototype.toString=function(){return this.o.toString()};function bc(a,b,c){if(c){var d={},e;for(e in c){var g=c[e],f=g.ra;f||(d.J=g.xa||g.oa.W,g.ia?(d.aa=cc(g.ia),f=function(h){return function(k,l,m){return h.J(k,l,m,h.aa)}}(d)):g.ka?(d.Z=dc(g.da.P,g.ka),f=function(h){return function(k,l,m){return h.J(k,l,m,h.Z)}}(d)):f=d.J,g.ra=f);f(b,a,g.da);d={J:d.J,aa:d.aa,Z:d.Z}}}yb(b,a)}var ec=Symbol();function fc(a,b,c){return a[ec]||(a[ec]=function(d,e){return b(d,e,c)})}
function gc(a){var b=a[ec];if(!b){var c=hc(a);b=function(d,e){return ic(d,e,c)};a[ec]=b}return b}function jc(a){var b=a.ia;if(b)return gc(b);if(b=a.wa)return fc(a.da.P,b,a.ka)}function kc(a){var b=jc(a),c=a.da,d=a.oa.U;return b?function(e,g){return d(e,g,c,b)}:function(e,g){return d(e,g,c)}}function lc(a,b){var c=a[b];"function"==typeof c&&0===c.length&&(c=c(),a[b]=c);return Array.isArray(c)&&(mc in c||nc in c||0<c.length&&"function"==typeof c[0])?c:void 0}
function oc(a,b,c,d,e,g){b.P=a[0];var f=1;if(a.length>f&&"number"!==typeof a[f]){var h=a[f++];c(b,h)}for(;f<a.length;){c=a[f++];for(var k=f+1;k<a.length&&"number"!==typeof a[k];)k++;h=a[f++];k-=f;switch(k){case 0:d(b,c,h);break;case 1:(k=lc(a,f))?(f++,e(b,c,h,k)):d(b,c,h,a[f++]);break;case 2:k=f++;k=lc(a,k);e(b,c,h,k,a[f++]);break;case 3:g(b,c,h,a[f++],a[f++],a[f++]);break;case 4:g(b,c,h,a[f++],a[f++],a[f++],a[f++]);break;default:throw Error("unexpected number of binary field arguments: "+k);}}return b}
var pc=Symbol();function cc(a){var b=a[pc];if(!b){var c=qc(a);b=function(d,e){return rc(d,e,c)};a[pc]=b}return b}function dc(a,b){var c=a[pc];c||(c=function(d,e){return bc(d,e,b)},a[pc]=c);return c}var nc=Symbol();function sc(a,b){a.push(b)}function tc(a,b,c){a.push(b,c.W)}function uc(a,b,c,d){var e=cc(d),g=qc(d).P,f=c.W;a.push(b,function(h,k,l){return f(h,k,l,g,e)})}function vc(a,b,c,d,e,g){var f=dc(d,g),h=c.W;a.push(b,function(k,l,m){return h(k,l,m,d,f)})}
function qc(a){var b=a[nc];if(b)return b;b=oc(a,a[nc]=[],sc,tc,uc,vc);mc in a&&nc in a&&(a.length=0);return b}var mc=Symbol();function wc(a,b){a[0]=b}function xc(a,b,c,d){var e=c.U;a[b]=d?function(g,f,h){return e(g,f,h,d)}:e}function yc(a,b,c,d,e){var g=c.U,f=gc(d),h=hc(d).P;a[b]=function(k,l,m){return g(k,l,m,h,f,e)}}function zc(a,b,c,d,e,g,f){var h=c.U,k=fc(d,e,g);a[b]=function(l,m,r){return h(l,m,r,d,k,f)}}
function hc(a){var b=a[mc];if(b)return b;b=oc(a,a[mc]={},wc,xc,yc,zc);mc in a&&nc in a&&(a.length=0);return b}
function ic(a,b,c){for(;ub(b)&&4!=b.i;){var d=b.l,e=c[d];if(!e){var g=c[0];g&&(g=g[d])&&(e=c[d]=kc(g))}if(!e||!e(b,a,d)){e=b;d=a;g=e.j;vb(e);var f=e;if(!f.ca){e=f.h.h-g;f.h.h=g;f=f.h;if(0==e)e=jb();else{g=pb(f,e);if(f.S&&f.m)e=f.i.subarray(g,g+e);else{f=f.i;var h=g;e=g+e;e=h===e?Pa():Ra?f.slice(h,e):new Uint8Array(f.subarray(h,e))}e=0==e.length?jb():new ib(e,Qa)}(g=d.R)?g.push(e):d.R=[e]}}}return a}
function rc(a,b,c){for(var d=c.length,e=1==d%2,g=e?1:0;g<d;g+=2)(0,c[g+1])(b,a,c[g]);bc(a,b,e?c[0]:void 0)}function Ac(a,b){return{U:a,W:b}}
var Y=Ac(function(a,b,c){if(5!==a.i)return!1;a=a.h;var d=a.i,e=a.h,g=d[e];var f=d[e+1];var h=d[e+2];d=d[e+3];L(a,a.h+4);f=(g<<0|f<<8|h<<16|d<<24)>>>0;a=2*(f>>31)+1;g=f>>>23&255;f&=8388607;U(b,c,255==g?f?NaN:Infinity*a:0==g?a*Math.pow(2,-149)*f:a*Math.pow(2,g-150)*(f+Math.pow(2,23)));return!0},function(a,b,c){b=Mb(b,c);if(null!=b){M(a.h,8*c+5);a=a.h;var d=+b;0===d?0<1/d?G=H=0:(H=0,G=2147483648):isNaN(d)?(H=0,G=2147483647):(d=(c=0>d?-2147483648:0)?-d:d,3.4028234663852886E38<d?(H=0,G=(c|2139095040)>>>
0):1.1754943508222875E-38>d?(d=Math.round(d/Math.pow(2,-149)),H=0,G=(c|d)>>>0):(b=Math.floor(Math.log(d)/Math.LN2),d*=Math.pow(2,-b),d=Math.round(8388608*d),16777216<=d&&++b,H=0,G=(c|b+127<<23|d&8388607)>>>0));c=G;a.h.push(c>>>0&255);a.h.push(c>>>8&255);a.h.push(c>>>16&255);a.h.push(c>>>24&255)}}),Bc=Ac(function(a,b,c){if(0!==a.i)return!1;var d=a.h,e=0,g=a=0,f=d.i,h=d.h;do{var k=f[h++];e|=(k&127)<<g;g+=7}while(32>g&&k&128);32<g&&(a|=(k&127)>>4);for(g=3;32>g&&k&128;g+=7)k=f[h++],a|=(k&127)<<g;L(d,
h);if(128>k){d=e>>>0;k=a>>>0;if(a=k&2147483648)d=~d+1>>>0,k=~k>>>0,0==d&&(k=k+1>>>0);d=4294967296*k+(d>>>0)}else throw Za();U(b,c,a?-d:d);return!0},function(a,b,c){b=S(b,c);null!=b&&("string"===typeof b&&Wa(b),null!=b&&(M(a.h,8*c),"number"===typeof b?(a=a.h,Sa(b),sb(a,G,H)):(c=Wa(b),sb(a.h,c.i,c.h))))}),Cc=Ac(function(a,b,c){if(0!==a.i)return!1;U(b,c,ob(a.h));return!0},function(a,b,c){b=S(b,c);if(null!=b&&null!=b)if(M(a.h,8*c),a=a.h,c=b,0<=c)M(a,c);else{for(b=0;9>b;b++)a.h.push(c&127|128),c>>=7;a.h.push(1)}}),
Dc=Ac(function(a,b,c){if(2!==a.i)return!1;var d=ob(a.h)>>>0;a=a.h;var e=pb(a,d);a=a.i;if(db){var g=a,f;(f=cb)||(f=cb=new TextDecoder("utf-8",{fatal:!0}));a=e+d;g=0===e&&a===g.length?g:g.subarray(e,a);try{var h=f.decode(g)}catch(r){if(void 0===bb){try{f.decode(new Uint8Array([128]))}catch(p){}try{f.decode(new Uint8Array([97])),bb=!0}catch(p){bb=!1}}!bb&&(cb=void 0);throw r;}}else{h=e;d=h+d;e=[];for(var k=null,l,m;h<d;)l=a[h++],128>l?e.push(l):224>l?h>=d?K():(m=a[h++],194>l||128!==(m&192)?(h--,K()):
e.push((l&31)<<6|m&63)):240>l?h>=d-1?K():(m=a[h++],128!==(m&192)||224===l&&160>m||237===l&&160<=m||128!==((g=a[h++])&192)?(h--,K()):e.push((l&15)<<12|(m&63)<<6|g&63)):244>=l?h>=d-2?K():(m=a[h++],128!==(m&192)||0!==(l<<28)+(m-144)>>30||128!==((g=a[h++])&192)||128!==((f=a[h++])&192)?(h--,K()):(l=(l&7)<<18|(m&63)<<12|(g&63)<<6|f&63,l-=65536,e.push((l>>10&1023)+55296,(l&1023)+56320))):K(),8192<=e.length&&(k=ab(k,e),e.length=0);h=ab(k,e)}U(b,c,h);return!0},function(a,b,c){b=S(b,c);if(null!=b){var d=!1;
d=void 0===d?!1:d;if(fb){if(d&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(b))throw Error("Found an unpaired surrogate");b=(eb||(eb=new TextEncoder)).encode(b)}else{for(var e=0,g=new Uint8Array(3*b.length),f=0;f<b.length;f++){var h=b.charCodeAt(f);if(128>h)g[e++]=h;else{if(2048>h)g[e++]=h>>6|192;else{if(55296<=h&&57343>=h){if(56319>=h&&f<b.length){var k=b.charCodeAt(++f);if(56320<=k&&57343>=k){h=1024*(h-55296)+k-56320+65536;g[e++]=h>>18|240;g[e++]=h>>12&63|128;
g[e++]=h>>6&63|128;g[e++]=h&63|128;continue}else f--}if(d)throw Error("Found an unpaired surrogate");h=65533}g[e++]=h>>12|224;g[e++]=h>>6&63|128}g[e++]=h&63|128}}b=e===g.length?g:g.subarray(0,e)}M(a.h,8*c+2);M(a.h,b.length);N(a,a.h.end());N(a,b)}}),Ec=Ac(function(a,b,c,d,e){if(2!==a.i)return!1;b=Qb(b,c,d);c=a.h.j;d=ob(a.h)>>>0;var g=a.h.h+d,f=g-c;0>=f&&(a.h.j=g,e(b,a,void 0,void 0,void 0),f=g-a.h.h);if(f)throw Error("Message parsing ended unexpectedly. Expected to read "+(d+" bytes, instead read "+
(d-f)+" bytes, either the data ended unexpectedly or the message misreported its own length"));a.h.h=g;a.h.j=c;return!0},function(a,b,c,d,e){b=Ob(b,d,c);if(null!=b)for(d=0;d<b.length;d++){var g=a;M(g.h,8*c+2);var f=g.h.end();N(g,f);f.push(g.i);g=f;e(b[d],a);f=a;var h=g.pop();for(h=f.i+f.h.length()-h;127<h;)g.push(h&127|128),h>>>=7,f.i++;g.push(h);f.i++}});function Fc(a){return function(b,c){a:{if(wb.length){var d=wb.pop();d.setOptions(c);nb(d.h,b,c);b=d}else b=new tb(b,c);try{var e=hc(a);var g=ic(new e.P,b,e);break a}finally{e=b.h,e.i=null,e.m=!1,e.l=0,e.j=0,e.h=0,e.S=!1,b.l=-1,b.i=-1,100>wb.length&&wb.push(b)}g=void 0}return g}}function Gc(a){return function(){var b=new xb;rc(this,b,qc(a));N(b,b.h.end());for(var c=new Uint8Array(b.i),d=b.j,e=d.length,g=0,f=0;f<e;f++){var h=d[f];c.set(h,g);g+=h.length}b.j=[c];return c}};function Z(a){X.call(this,a)}na(Z,X);var Hc=[Z,1,Cc,2,Y,3,Dc,4,Dc];Z.prototype.l=Gc(Hc);function Ic(a){X.call(this,a,-1,Jc)}na(Ic,X);Ic.prototype.addClassification=function(a,b){Qb(this,1,Z,a,b);return this};var Jc=[1],Kc=Fc([Ic,1,Ec,Hc]);function Lc(a){X.call(this,a)}na(Lc,X);var Mc=[Lc,1,Y,2,Y,3,Y,4,Y,5,Y];Lc.prototype.l=Gc(Mc);function Nc(a){X.call(this,a,-1,Oc)}na(Nc,X);var Oc=[1],Pc=Fc([Nc,1,Ec,Mc]);function Qc(a){X.call(this,a)}na(Qc,X);var Rc=[Qc,1,Y,2,Y,3,Y,4,Y,5,Y,6,Bc],Sc=Fc(Rc);Qc.prototype.l=Gc(Rc);function Tc(a,b,c){c=a.createShader(0===c?a.VERTEX_SHADER:a.FRAGMENT_SHADER);a.shaderSource(c,b);a.compileShader(c);if(!a.getShaderParameter(c,a.COMPILE_STATUS))throw Error("Could not compile WebGL shader.\n\n"+a.getShaderInfoLog(c));return c};function Uc(a){return Ob(a,Z,1).map(function(b){var c=S(b,1);return{index:null==c?0:c,qa:W(b,2),label:null!=S(b,3)?Rb(S(b,3),""):void 0,displayName:null!=S(b,4)?Rb(S(b,4),""):void 0}})};function Vc(a){return{x:W(a,1),y:W(a,2),z:W(a,3),visibility:null!=Mb(a,4)?W(a,4):void 0}};function Wc(a,b){this.i=a;this.h=b;this.m=0}
function Xc(a,b,c){Yc(a,b);if("function"===typeof a.h.canvas.transferToImageBitmap)return Promise.resolve(a.h.canvas.transferToImageBitmap());if(c)return Promise.resolve(a.h.canvas);if("function"===typeof createImageBitmap)return createImageBitmap(a.h.canvas);void 0===a.j&&(a.j=document.createElement("canvas"));return new Promise(function(d){a.j.height=a.h.canvas.height;a.j.width=a.h.canvas.width;a.j.getContext("2d",{}).drawImage(a.h.canvas,0,0,a.h.canvas.width,a.h.canvas.height);d(a.j)})}
function Yc(a,b){var c=a.h;if(void 0===a.s){var d=Tc(c,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",0),e=Tc(c,"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D sampler0;\n void main(){\n gl_FragColor = texture2D(sampler0, vTex);\n }",1),g=c.createProgram();c.attachShader(g,d);c.attachShader(g,e);c.linkProgram(g);if(!c.getProgramParameter(g,c.LINK_STATUS))throw Error("Could not compile WebGL program.\n\n"+
c.getProgramInfoLog(g));d=a.s=g;c.useProgram(d);e=c.getUniformLocation(d,"sampler0");a.l={O:c.getAttribLocation(d,"aVertex"),N:c.getAttribLocation(d,"aTex"),ya:e};a.v=c.createBuffer();c.bindBuffer(c.ARRAY_BUFFER,a.v);c.enableVertexAttribArray(a.l.O);c.vertexAttribPointer(a.l.O,2,c.FLOAT,!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,null);a.u=c.createBuffer();c.bindBuffer(c.ARRAY_BUFFER,a.u);c.enableVertexAttribArray(a.l.N);c.vertexAttribPointer(a.l.N,
2,c.FLOAT,!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,null);c.uniform1i(e,0)}d=a.l;c.useProgram(a.s);c.canvas.width=b.width;c.canvas.height=b.height;c.viewport(0,0,b.width,b.height);c.activeTexture(c.TEXTURE0);a.i.bindTexture2d(b.glName);c.enableVertexAttribArray(d.O);c.bindBuffer(c.ARRAY_BUFFER,a.v);c.vertexAttribPointer(d.O,2,c.FLOAT,!1,0,0);c.enableVertexAttribArray(d.N);c.bindBuffer(c.ARRAY_BUFFER,a.u);c.vertexAttribPointer(d.N,
2,c.FLOAT,!1,0,0);c.bindFramebuffer(c.DRAW_FRAMEBUFFER?c.DRAW_FRAMEBUFFER:c.FRAMEBUFFER,null);c.clearColor(0,0,0,0);c.clear(c.COLOR_BUFFER_BIT);c.colorMask(!0,!0,!0,!0);c.drawArrays(c.TRIANGLE_FAN,0,4);c.disableVertexAttribArray(d.O);c.disableVertexAttribArray(d.N);c.bindBuffer(c.ARRAY_BUFFER,null);a.i.bindTexture2d(0)}function Zc(a){this.h=a};var $c=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function ad(a,b){return b+a}function bd(a,b){window[a]=b}function cd(a){var b=document.createElement("script");b.setAttribute("src",a);b.setAttribute("crossorigin","anonymous");return new Promise(function(c){b.addEventListener("load",function(){c()},!1);b.addEventListener("error",function(){c()},!1);document.body.appendChild(b)})}
function dd(){return E(function(a){switch(a.h){case 1:return a.s=2,D(a,WebAssembly.instantiate($c),4);case 4:a.h=3;a.s=0;break;case 2:return a.s=0,a.l=null,a.return(!1);case 3:return a.return(!0)}})}
function ed(a){this.h=a;this.listeners={};this.l={};this.L={};this.s={};this.v={};this.M=this.u=this.ga=!0;this.I=Promise.resolve();this.fa="";this.D={};this.locateFile=a&&a.locateFile||ad;if("object"===typeof window)var b=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if("undefined"!==typeof location)b=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");
this.ha=b;if(a.options){b=A(Object.keys(a.options));for(var c=b.next();!c.done;c=b.next()){c=c.value;var d=a.options[c].default;void 0!==d&&(this.l[c]="function"===typeof d?d():d)}}}x=ed.prototype;x.close=function(){this.j&&this.j.delete();return Promise.resolve()};
function fd(a){var b,c,d,e,g,f,h,k,l,m,r;return E(function(p){switch(p.h){case 1:if(!a.ga)return p.return();b=void 0===a.h.files?[]:"function"===typeof a.h.files?a.h.files(a.l):a.h.files;return D(p,dd(),2);case 2:c=p.i;if("object"===typeof window)return bd("createMediapipeSolutionsWasm",{locateFile:a.locateFile}),bd("createMediapipeSolutionsPackedAssets",{locateFile:a.locateFile}),f=b.filter(function(n){return void 0!==n.data}),h=b.filter(function(n){return void 0===n.data}),k=Promise.all(f.map(function(n){var q=
gd(a,n.url);if(void 0!==n.path){var t=n.path;q=q.then(function(w){a.overrideFile(t,w);return Promise.resolve(w)})}return q})),l=Promise.all(h.map(function(n){return void 0===n.simd||n.simd&&c||!n.simd&&!c?cd(a.locateFile(n.url,a.ha)):Promise.resolve()})).then(function(){var n,q,t;return E(function(w){if(1==w.h)return n=window.createMediapipeSolutionsWasm,q=window.createMediapipeSolutionsPackedAssets,t=a,D(w,n(q),2);t.i=w.i;w.h=0})}),m=function(){return E(function(n){a.h.graph&&a.h.graph.url?n=D(n,
gd(a,a.h.graph.url),0):(n.h=0,n=void 0);return n})}(),D(p,Promise.all([l,k,m]),7);if("function"!==typeof importScripts)throw Error("solutions can only be loaded on a web page or in a web worker");d=b.filter(function(n){return void 0===n.simd||n.simd&&c||!n.simd&&!c}).map(function(n){return a.locateFile(n.url,a.ha)});importScripts.apply(null,ea(d));e=a;return D(p,createMediapipeSolutionsWasm(Module),6);case 6:e.i=p.i;a.m=new OffscreenCanvas(1,1);a.i.canvas=a.m;g=a.i.GL.createContext(a.m,{antialias:!1,
alpha:!1,va:"undefined"!==typeof WebGL2RenderingContext?2:1});a.i.GL.makeContextCurrent(g);p.h=4;break;case 7:a.m=document.createElement("canvas");r=a.m.getContext("webgl2",{});if(!r&&(r=a.m.getContext("webgl",{}),!r))return alert("Failed to create WebGL canvas context when passing video frame."),p.return();a.K=r;a.i.canvas=a.m;a.i.createContext(a.m,!0,!0,{});case 4:a.j=new a.i.SolutionWasm,a.ga=!1,p.h=0}})}
function hd(a){var b,c,d,e,g,f,h,k;return E(function(l){if(1==l.h){if(a.h.graph&&a.h.graph.url&&a.fa===a.h.graph.url)return l.return();a.u=!0;if(!a.h.graph||!a.h.graph.url){l.h=2;return}a.fa=a.h.graph.url;return D(l,gd(a,a.h.graph.url),3)}2!=l.h&&(b=l.i,a.j.loadGraph(b));c=A(Object.keys(a.D));for(d=c.next();!d.done;d=c.next())e=d.value,a.j.overrideFile(e,a.D[e]);a.D={};if(a.h.listeners)for(g=A(a.h.listeners),f=g.next();!f.done;f=g.next())h=f.value,id(a,h);k=a.l;a.l={};a.setOptions(k);l.h=0})}
x.reset=function(){var a=this;return E(function(b){a.j&&(a.j.reset(),a.s={},a.v={});b.h=0})};
x.setOptions=function(a,b){var c=this;if(b=b||this.h.options){for(var d=[],e=[],g={},f=A(Object.keys(a)),h=f.next();!h.done;g={X:g.X,Y:g.Y},h=f.next())if(h=h.value,!(h in this.l&&this.l[h]===a[h])){this.l[h]=a[h];var k=b[h];void 0!==k&&(k.onChange&&(g.X=k.onChange,g.Y=a[h],d.push(function(l){return function(){var m;return E(function(r){if(1==r.h)return D(r,l.X(l.Y),2);m=r.i;!0===m&&(c.u=!0);r.h=0})}}(g))),k.graphOptionXref&&(h=Object.assign({},{calculatorName:"",calculatorIndex:0},k.graphOptionXref,
{valueNumber:1===k.type?a[h]:0,valueBoolean:0===k.type?a[h]:!1,valueString:2===k.type?a[h]:""}),e.push(h)))}if(0!==d.length||0!==e.length)this.u=!0,this.H=(void 0===this.H?[]:this.H).concat(e),this.F=(void 0===this.F?[]:this.F).concat(d)}};
function jd(a){var b,c,d,e,g,f,h;return E(function(k){switch(k.h){case 1:if(!a.u)return k.return();if(!a.F){k.h=2;break}b=A(a.F);c=b.next();case 3:if(c.done){k.h=5;break}d=c.value;return D(k,d(),4);case 4:c=b.next();k.h=3;break;case 5:a.F=void 0;case 2:if(a.H){e=new a.i.GraphOptionChangeRequestList;g=A(a.H);for(f=g.next();!f.done;f=g.next())h=f.value,e.push_back(h);a.j.changeOptions(e);e.delete();a.H=void 0}a.u=!1;k.h=0}})}
x.initialize=function(){var a=this;return E(function(b){return 1==b.h?D(b,fd(a),2):3!=b.h?D(b,hd(a),3):D(b,jd(a),0)})};function gd(a,b){var c,d;return E(function(e){if(b in a.L)return e.return(a.L[b]);c=a.locateFile(b,"");d=fetch(c).then(function(g){return g.arrayBuffer()});a.L[b]=d;return e.return(d)})}x.overrideFile=function(a,b){this.j?this.j.overrideFile(a,b):this.D[a]=b};x.clearOverriddenFiles=function(){this.D={};this.j&&this.j.clearOverriddenFiles()};
x.send=function(a,b){var c=this,d,e,g,f,h,k,l,m,r;return E(function(p){switch(p.h){case 1:if(!c.h.inputs)return p.return();d=1E3*(void 0===b||null===b?performance.now():b);return D(p,c.I,2);case 2:return D(p,c.initialize(),3);case 3:e=new c.i.PacketDataList;g=A(Object.keys(a));for(f=g.next();!f.done;f=g.next())if(h=f.value,k=c.h.inputs[h]){a:{var n=a[h];switch(k.type){case "video":var q=c.s[k.stream];q||(q=new Wc(c.i,c.K),c.s[k.stream]=q);0===q.m&&(q.m=q.i.createTexture());if("undefined"!==typeof HTMLVideoElement&&
n instanceof HTMLVideoElement){var t=n.videoWidth;var w=n.videoHeight}else"undefined"!==typeof HTMLImageElement&&n instanceof HTMLImageElement?(t=n.naturalWidth,w=n.naturalHeight):(t=n.width,w=n.height);w={glName:q.m,width:t,height:w};t=q.h;t.canvas.width=w.width;t.canvas.height=w.height;t.activeTexture(t.TEXTURE0);q.i.bindTexture2d(q.m);t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n);q.i.bindTexture2d(0);q=w;break a;case "detections":q=c.s[k.stream];q||(q=new Zc(c.i),c.s[k.stream]=q);
q.data||(q.data=new q.h.DetectionListData);q.data.reset(n.length);for(w=0;w<n.length;++w){t=n[w];var v=q.data,B=v.setBoundingBox,J=w;var I=t.la;var u=new Qc;V(u,1,I.sa);V(u,2,I.ta);V(u,3,I.height);V(u,4,I.width);V(u,5,I.rotation);U(u,6,I.pa);I=u.l();B.call(v,J,I);if(t.ea)for(v=0;v<t.ea.length;++v){u=t.ea[v];B=q.data;J=B.addNormalizedLandmark;I=w;u=Object.assign({},u,{visibility:u.visibility?u.visibility:0});var C=new Lc;V(C,1,u.x);V(C,2,u.y);V(C,3,u.z);u.visibility&&V(C,4,u.visibility);u=C.l();J.call(B,
I,u)}if(t.ba)for(v=0;v<t.ba.length;++v)B=q.data,J=B.addClassification,I=w,u=t.ba[v],C=new Z,V(C,2,u.qa),u.index&&U(C,1,u.index),u.label&&U(C,3,u.label),u.displayName&&U(C,4,u.displayName),u=C.l(),J.call(B,I,u)}q=q.data;break a;default:q={}}}l=q;m=k.stream;switch(k.type){case "video":e.pushTexture2d(Object.assign({},l,{stream:m,timestamp:d}));break;case "detections":r=l;r.stream=m;r.timestamp=d;e.pushDetectionList(r);break;default:throw Error("Unknown input config type: '"+k.type+"'");}}c.j.send(e);
return D(p,c.I,4);case 4:e.delete(),p.h=0}})};
function kd(a,b,c){var d,e,g,f,h,k,l,m,r,p,n,q,t,w;return E(function(v){switch(v.h){case 1:if(!c)return v.return(b);d={};e=0;g=A(Object.keys(c));for(f=g.next();!f.done;f=g.next())h=f.value,k=c[h],"string"!==typeof k&&"texture"===k.type&&void 0!==b[k.stream]&&++e;1<e&&(a.M=!1);l=A(Object.keys(c));f=l.next();case 2:if(f.done){v.h=4;break}m=f.value;r=c[m];if("string"===typeof r)return t=d,w=m,D(v,ld(a,m,b[r]),14);p=b[r.stream];if("detection_list"===r.type){if(p){var B=p.getRectList();for(var J=p.getLandmarksList(),
I=p.getClassificationsList(),u=[],C=0;C<B.size();++C){var T=Sc(B.get(C)),od=W(T,1),pd=W(T,2),qd=W(T,3),rd=W(T,4),sd=W(T,5,0),za=void 0;za=void 0===za?0:za;T={la:{sa:od,ta:pd,height:qd,width:rd,rotation:sd,pa:Rb(S(T,6),za)},ea:Ob(Pc(J.get(C)),Lc,1).map(Vc),ba:Uc(Kc(I.get(C)))};u.push(T)}B=u}else B=[];d[m]=B;v.h=7;break}if("proto_list"===r.type){if(p){B=Array(p.size());for(J=0;J<p.size();J++)B[J]=p.get(J);p.delete()}else B=[];d[m]=B;v.h=7;break}if(void 0===p){v.h=3;break}if("float_list"===r.type){d[m]=
p;v.h=7;break}if("proto"===r.type){d[m]=p;v.h=7;break}if("texture"!==r.type)throw Error("Unknown output config type: '"+r.type+"'");n=a.v[m];n||(n=new Wc(a.i,a.K),a.v[m]=n);return D(v,Xc(n,p,a.M),13);case 13:q=v.i,d[m]=q;case 7:r.transform&&d[m]&&(d[m]=r.transform(d[m]));v.h=3;break;case 14:t[w]=v.i;case 3:f=l.next();v.h=2;break;case 4:return v.return(d)}})}
function ld(a,b,c){var d;return E(function(e){return"number"===typeof c||c instanceof Uint8Array||c instanceof a.i.Uint8BlobList?e.return(c):c instanceof a.i.Texture2dDataOut?(d=a.v[b],d||(d=new Wc(a.i,a.K),a.v[b]=d),e.return(Xc(d,c,a.M))):e.return(void 0)})}
function id(a,b){for(var c=b.name||"$",d=[].concat(ea(b.wants)),e=new a.i.StringList,g=A(b.wants),f=g.next();!f.done;f=g.next())e.push_back(f.value);g=a.i.PacketListener.implement({onResults:function(h){for(var k={},l=0;l<b.wants.length;++l)k[d[l]]=h.get(l);var m=a.listeners[c];m&&(a.I=kd(a,k,b.outs).then(function(r){r=m(r);for(var p=0;p<b.wants.length;++p){var n=k[d[p]];"object"===typeof n&&n.hasOwnProperty&&n.hasOwnProperty("delete")&&n.delete()}r&&(a.I=r)}))}});a.j.attachMultiListener(e,g);e.delete()}
x.onResults=function(a,b){this.listeners[b||"$"]=a};Aa("Solution",ed);Aa("OptionType",{BOOL:0,NUMBER:1,ua:2,0:"BOOL",1:"NUMBER",2:"STRING"});function md(a){void 0===a&&(a=0);switch(a){case 1:return"selfie_segmentation_landscape.tflite";default:return"selfie_segmentation.tflite"}}
function nd(a){var b=this;a=a||{};this.h=new ed({locateFile:a.locateFile,files:function(c){return[{simd:!0,url:"selfie_segmentation_solution_simd_wasm_bin.js"},{simd:!1,url:"selfie_segmentation_solution_wasm_bin.js"},{data:!0,url:md(c.modelSelection)}]},graph:{url:"selfie_segmentation.binarypb"},listeners:[{wants:["segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",
stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"object"!==typeof window||void 0===window.navigator?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelSelection:{type:1,
graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value"},onChange:function(c){var d,e,g;return E(function(f){if(1==f.h)return d=md(c),e="third_party/mediapipe/modules/selfie_segmentation/"+d,D(f,gd(b.h,d),2);g=f.i;b.h.overrideFile(e,g);return f.return(!0)})}}}})}x=nd.prototype;x.close=function(){this.h.close();return Promise.resolve()};x.onResults=function(a){this.h.onResults(a)};
x.initialize=function(){var a=this;return E(function(b){return D(b,a.h.initialize(),0)})};x.reset=function(){this.h.reset()};x.send=function(a){var b=this;return E(function(c){return D(c,b.h.send(a),0)})};x.setOptions=function(a){this.h.setOptions(a)};Aa("SelfieSegmentation",nd);Aa("VERSION","0.1.1675465747");}).call(this);
@@ -0,0 +1,21 @@
var createMediapipeSolutionsWasm = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(createMediapipeSolutionsWasm) {
createMediapipeSolutionsWasm = createMediapipeSolutionsWasm || {};
var Module=typeof createMediapipeSolutionsWasm!="undefined"?createMediapipeSolutionsWasm:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});["_main","_fflush","___getTypeName","__embind_initialize_bindings","onRuntimeInitialized"].forEach(prop=>{if(!Object.getOwnPropertyDescriptor(Module["ready"],prop)){Object.defineProperty(Module["ready"],prop,{get:()=>abort("You are getting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>abort("You are setting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;if(e&&typeof e=="object"&&e.stack){toLog=[e,e.stack]}err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(typeof process=="undefined"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){let data;if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data=="object");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - anLine truncated
return createMediapipeSolutionsWasm.ready
}
);
})();
if (typeof exports === 'object' && typeof module === 'object')
module.exports = createMediapipeSolutionsWasm;
else if (typeof define === 'function' && define['amd'])
define([], function() { return createMediapipeSolutionsWasm; });
else if (typeof exports === 'object')
exports["createMediapipeSolutionsWasm"] = createMediapipeSolutionsWasm;
@@ -0,0 +1,21 @@
var createMediapipeSolutionsWasm = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(createMediapipeSolutionsWasm) {
createMediapipeSolutionsWasm = createMediapipeSolutionsWasm || {};
var Module=typeof createMediapipeSolutionsWasm!="undefined"?createMediapipeSolutionsWasm:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});["_main","_fflush","___getTypeName","__embind_initialize_bindings","onRuntimeInitialized"].forEach(prop=>{if(!Object.getOwnPropertyDescriptor(Module["ready"],prop)){Object.defineProperty(Module["ready"],prop,{get:()=>abort("You are getting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>abort("You are setting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;if(e&&typeof e=="object"&&e.stack){toLog=[e,e.stack]}err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(typeof process=="undefined"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){let data;if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data=="object");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - anLine truncated
return createMediapipeSolutionsWasm.ready
}
);
})();
if (typeof exports === 'object' && typeof module === 'object')
module.exports = createMediapipeSolutionsWasm;
else if (typeof define === 'function' && define['amd'])
define([], function() { return createMediapipeSolutionsWasm; });
else if (typeof exports === 'object')
exports["createMediapipeSolutionsWasm"] = createMediapipeSolutionsWasm;
+16
View File
@@ -0,0 +1,16 @@
// npm i artplayer-plugin-ambilight
// import artplayerPluginAmbilight from 'artplayer-plugin-ambilight';
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
autoSize: true,
plugins: [
artplayerPluginAmbilight({
blur: '50px',
opacity: 1,
frequency: 10,
duration: 0.3,
}),
],
});
+58
View File
@@ -0,0 +1,58 @@
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/steve-jobs.mp4',
autoSize: true,
fullscreen: true,
fullscreenWeb: true,
moreVideoAttr: {
// crossOrigin: 'anonymous',
},
plugins: [
artplayerPluginAsr({
length: 2,
interval: 40,
sampleRate: 16000,
autoHideTimeout: 10000,
// Use your AI tool to convert pcm into subtitles
onAudioChunk: ({ pcm }) => startAsr(pcm),
}),
]
});
var ws = null;
var loading = false;
function stopAsr() {
try {
ws.send(JSON.stringify({ type: 'end' }));
ws.close();
} catch {}
ws = null;
loading = false;
}
async function startAsr(buffer) {
if (loading) return;
if (!ws) {
loading = true;
const api = 'https://api.aimu.app/asr/tencent?engine_model_type=16k_en';
const { url } = await (await fetch(api)).json();
ws = new WebSocket(url);
ws.binaryType = 'arraybuffer';
ws.onmessage = (event) => {
const { code, result, message } = JSON.parse(event.data);
if (code === 0) {
art.plugins.artplayerPluginAsr.append(result?.voice_text_str);
} else {
console.error(code, message);
stopAsr();
}
};
loading = false;
}
if (ws?.readyState === WebSocket.OPEN) {
ws.send(buffer);
}
}
art.on('destroy', stopAsr);
+12
View File
@@ -0,0 +1,12 @@
// npm i artplayer-plugin-auto-thumbnail
// import artplayerPluginAutoThumbnail from 'artplayer-plugin-auto-thumbnail';
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
plugins: [
artplayerPluginAutoThumbnail({
//
}),
],
});
+30
View File
@@ -0,0 +1,30 @@
// npm i artplayer-proxy-canvas
// import artplayerProxyCanvas from 'artplayer-proxy-canvas';
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
poster: '/assets/sample/poster.jpg',
volume: 0.5,
autoplay: false,
autoSize: false,
screenshot: true,
setting: true,
loop: true,
flip: true,
pip: true,
playbackRate: true,
aspectRatio: true,
fullscreen: true,
fullscreenWeb: true,
miniProgressBar: true,
autoPlayback: true,
autoOrientation: true,
thumbnails: {
url: '/assets/sample/thumbnails.png',
number: 60,
column: 10,
scale: 0.85,
},
proxy: artplayerProxyCanvas(),
});
+28
View File
@@ -0,0 +1,28 @@
// npm i artplayer-plugin-chapter
// import artplayerPluginChapter from 'artplayer-plugin-chapter';
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
autoSize: true,
fullscreen: true,
fullscreenWeb: true,
miniProgressBar: true,
autoOrientation: true,
thumbnails: {
url: '/assets/sample/thumbnails.png',
number: 60,
column: 10,
},
plugins: [
artplayerPluginChapter({
chapters: [
{ start: 0, end: 18, title: 'One more chance' },
{ start: 18, end: 36, title: '谁でもいいはずなのに' },
{ start: 36, end: 54, title: '夏の想い出がまわる' },
{ start: 54, end: 72, title: 'こんなとこにあるはずもないのに' },
{ start: 72, end: Infinity, title: '终わり' },
]
}),
],
});
+2 -11
View File
@@ -25,6 +25,7 @@ var art = new Artplayer({
synchronousPlayback: false, // 是否同步播放速度
mount: undefined, // 弹幕发射器挂载点, 默认为播放器控制栏中部
heatmap: true, // 是否开启热力图
width: 512, // 当播放器宽度小于此值时,弹幕发射器置于播放器底部
points: [], // 热力图数据
filter: (danmu) => danmu.text.length <= 100, // 弹幕载入前的过滤器
beforeVisible: () => true, // 弹幕显示前的过滤器,返回 true 则可以发送
@@ -50,14 +51,4 @@ var art = new Artplayer({
},
}),
],
});
// 在移动端或者播放器尺寸太小的时候,可以把弹幕发射器挂载到其他位置
// if (Artplayer.utils.isMobile) {
// art.plugins.artplayerPluginDanmuku.mount('.danmuku-emitter')
// }
// 弹幕已经出现在播放器里,你可以访问到弹幕的dom元素里
// art.on('artplayerPluginDanmuku:visible', danmu => {
// danmu.$ref.innerHTML = 'ଘ(੭ˊᵕˋ)੭: ' + danmu.$ref.innerHTML;
// })
});
+22
View File
@@ -0,0 +1,22 @@
// npm i artplayer-plugin-danmuku-mask
// import artplayerPluginDanmukuMask from 'artplayer-plugin-danmuku-mask';
// npm i @mediapipe/selfie_segmentation
// 把 node_modules/@mediapipe/selfie_segmentation 目录复制到你的项目下
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
autoSize: true,
fullscreen: true,
fullscreenWeb: true,
autoOrientation: true,
plugins: [
artplayerPluginDanmuku({
danmuku: '/assets/sample/danmuku.xml'
}),
artplayerPluginDanmukuMask({
solutionPath: '/assets/@mediapipe/selfie_segmentation',
}),
],
});
+50
View File
@@ -0,0 +1,50 @@
// npm i dashjs
// npm i artplayer-plugin-dash-control
// import dashjs from 'dashjs';
// import artplayerPluginDashControl from 'artplayer-plugin-dash-control';
var art = new Artplayer({
container: '.artplayer-app',
url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd',
setting: true,
plugins: [
artplayerPluginDashControl({
quality: {
// Show qualitys in control
control: true,
// Show qualitys in setting
setting: true,
// Get the quality name from level
getName: (level) => level.height + 'P',
// I18n
title: 'Quality',
auto: 'Auto',
},
audio: {
// Show audios in control
control: true,
// Show audios in setting
setting: true,
// Get the audio name from track
getName: (track) => track.lang.toUpperCase(),
// I18n
title: 'Audio',
auto: 'Auto',
}
}),
],
customType: {
mpd: function playMpd(video, url, art) {
if (dashjs.supportsMediaSource()) {
if (art.dash) art.dash.destroy();
const dash = dashjs.MediaPlayer().create();
dash.initialize(video, url, art.option.autoplay);
art.dash = dash;
art.on('destroy', () => dash.destroy());
} else {
art.notice.show = 'Unsupported playback format: mpd';
}
}
},
});
-40
View File
@@ -1,40 +0,0 @@
// npm i dashjs
// npm i artplayer-plugin-dash-quality
// import dashjs from 'dashjs';
// import artplayerPluginDashQuality from 'artplayer-plugin-dash-quality';
var art = new Artplayer({
container: '.artplayer-app',
url: 'https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd',
setting: true,
plugins: [
artplayerPluginDashQuality({
// Show quality in control
control: true,
// Show quality in setting
setting: true,
// Get the resolution text from level
getResolution: (level) => level.height + 'P',
// I18n
title: 'Quality',
auto: 'Auto',
}),
],
customType: {
mpd: function playMpd(video, url, art) {
if (dashjs.supportsMediaSource()) {
if (art.dash) art.dash.destroy();
const dash = dashjs.MediaPlayer().create();
dash.initialize(video, url, art.option.autoplay);
art.dash = dash;
art.on('destroy', () => dash.destroy());
} else {
art.notice.show = 'Unsupported playback format: mpd';
}
}
},
});
+53
View File
@@ -0,0 +1,53 @@
// npm i hls.js
// npm i artplayer-plugin-hls-control
// import Hls from 'hls.js';
// import artplayerPluginHlsControl from 'artplayer-plugin-hls-control';
var art = new Artplayer({
container: '.artplayer-app',
url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8',
setting: true,
plugins: [
artplayerPluginHlsControl({
quality: {
// Show qualitys in control
control: true,
// Show qualitys in setting
setting: true,
// Get the quality name from level
getName: (level) => level.height + 'P',
// I18n
title: 'Quality',
auto: 'Auto',
},
audio: {
// Show audios in control
control: true,
// Show audios in setting
setting: true,
// Get the audio name from track
getName: (track) => track.name,
// I18n
title: 'Audio',
auto: 'Auto',
}
}),
],
customType: {
m3u8: function playM3u8(video, url, art) {
if (Hls.isSupported()) {
if (art.hls) art.hls.destroy();
const hls = new Hls();
hls.loadSource(url);
hls.attachMedia(video);
art.hls = hls;
art.on('destroy', () => hls.destroy());
} else if (video.canPlayType('application/vnd.apple.mpegurl')) {
video.src = url;
} else {
art.notice.show = 'Unsupported playback format: m3u8';
}
}
},
});
-43
View File
@@ -1,43 +0,0 @@
// npm i hls.js
// npm i artplayer-plugin-hls-quality
// import Hls from 'hls.js';
// import artplayerPluginHlsQuality from 'artplayer-plugin-hls-quality';
var art = new Artplayer({
container: '.artplayer-app',
url: 'https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8',
setting: true,
plugins: [
artplayerPluginHlsQuality({
// Show quality in control
control: true,
// Show quality in setting
setting: true,
// Get the resolution text from level
getResolution: (level) => level.height + 'P',
// I18n
title: 'Quality',
auto: 'Auto',
}),
],
customType: {
m3u8: function playM3u8(video, url, art) {
if (Hls.isSupported()) {
if (art.hls) art.hls.destroy();
const hls = new Hls();
hls.loadSource(url);
hls.attachMedia(video);
art.hls = hls;
art.on('destroy', () => hls.destroy());
} else if (video.canPlayType('application/vnd.apple.mpegurl')) {
video.src = url;
} else {
art.notice.show = 'Unsupported playback format: m3u8';
}
}
},
});
+17 -8
View File
@@ -34,7 +34,7 @@ var art = new Artplayer({
width: 200,
html: 'Subtitle',
tooltip: 'Bilingual',
icon: '<img width="22" heigth="22" src="/assets/img/subtitle.svg">',
icon: '<img width="22" height="22" src="/assets/img/subtitle.svg">',
selector: [
{
html: 'Display',
@@ -69,7 +69,7 @@ var art = new Artplayer({
},
{
html: 'Switcher',
icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
icon: '<img width="22" height="22" src="/assets/img/state.svg">',
tooltip: 'OFF',
switch: false,
onSwitch: function (item) {
@@ -80,13 +80,21 @@ var art = new Artplayer({
},
{
html: 'Slider',
icon: '<img width="22" heigth="22" src="/assets/img/state.svg">',
icon: '<img width="22" height="22" src="/assets/img/state.svg">',
tooltip: '5x',
range: [5, 1, 10, 0.1],
onRange: function (item) {
return item.range + 'x';
return item.range[0] + 'x';
},
},
{
html: 'Button',
icon: '<img width="22" height="22" src="/assets/img/state.svg">',
tooltip: 'tooltip',
onClick() {
return 'Button clicked';
}
},
],
contextmenu: [
{
@@ -116,17 +124,18 @@ var art = new Artplayer({
{
default: true,
html: 'SD 480P',
url: '/assets/sample/video.mp4',
url: '/assets/sample/video.mp4?q=480',
},
{
html: 'HD 720P',
url: '/assets/sample/video.mp4',
url: '/assets/sample/video.mp4?q=720',
},
],
thumbnails: {
url: '/assets/sample/thumbnails.png',
number: 60,
column: 10,
scale: 0.85,
},
subtitle: {
url: '/assets/sample/subtitle.srt',
@@ -175,7 +184,7 @@ var art = new Artplayer({
],
icons: {
loading: '<img src="/assets/img/ploading.gif">',
state: '<img width="150" heigth="150" src="/assets/img/state.svg">',
indicator: '<img width="16" heigth="16" src="/assets/img/indicator.svg">',
state: '<img width="150" height="150" src="/assets/img/state.svg">',
indicator: '<img width="16" height="16" src="/assets/img/indicator.svg">',
},
});
+9 -3
View File
@@ -23,6 +23,12 @@ var art = new Artplayer({
'x5-video-orientation': 'portraint',
preload: "metadata"
},
thumbnails: {
url: '/assets/sample/thumbnails.png',
number: 60,
column: 10,
scale: 0.6
},
subtitle: {
name: '中日双语',
url: '/assets/sample/subtitle.srt',
@@ -47,15 +53,15 @@ var art = new Artplayer({
],
icons: {
loading: '<img src="/assets/img/ploading.gif">',
state: '<img width="150" heigth="150" src="/assets/img/state.svg">',
indicator: '<img width="16" heigth="16" src="/assets/img/indicator.svg">',
state: '<img width="150" height="150" src="/assets/img/state.svg">',
indicator: '<img width="16" height="16" src="/assets/img/indicator.svg">',
},
settings: [
{
width: 200,
html: '切换字幕',
tooltip: '双语',
icon: '<img width="22" heigth="22" src="/assets/img/subtitle.svg">',
icon: '<img width="22" height="22" src="/assets/img/subtitle.svg">',
selector: [
{
html: '开关',
+1 -1
View File
@@ -24,7 +24,7 @@ var art = new Artplayer({
width: 200,
html: 'Subtitle',
tooltip: 'Double',
icon: '<img width="22" heigth="22" src="/assets/img/subtitle.svg">',
icon: '<img width="22" height="22" src="/assets/img/subtitle.svg">',
selector: [
{
html: 'Display',
+138
View File
@@ -0,0 +1,138 @@
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
setting: true,
flip: true,
playbackRate: true,
aspectRatio: true,
subtitleOffset: true,
settings: [
{
width: 200,
html: 'Subtitle',
name: 'subtitle',
tooltip: 'Bilingual',
icon: '<img width="22" height="22" src="/assets/img/subtitle.svg">',
selector: [
{
html: 'Display',
tooltip: 'Show',
switch: true,
onSwitch: function (item) {
item.tooltip = item.switch ? 'Hide' : 'Show';
art.subtitle.show = !item.switch;
return !item.switch;
},
},
{
default: true,
html: 'Bilingual',
url: '/assets/sample/subtitle.srt',
},
{
html: 'Chinese',
url: '/assets/sample/subtitle.cn.srt',
},
{
html: 'Japanese',
url: '/assets/sample/subtitle.jp.srt',
},
],
onSelect: function (item) {
art.subtitle.switch(item.url, {
name: item.html,
});
return item.html;
},
mounted: function (...args) {
console.info(args);
},
},
{
html: 'Switcher',
icon: '<img width="22" height="22" src="/assets/img/state.svg">',
tooltip: 'OFF',
switch: false,
onSwitch: function (item) {
item.tooltip = item.switch ? 'OFF' : 'ON';
console.info('You clicked on the custom switch', item.switch);
return !item.switch;
},
mounted: function (...args) {
console.info(args);
},
},
{
html: 'Slider',
icon: '<img width="22" height="22" src="/assets/img/state.svg">',
tooltip: '5x',
range: [5, 1, 10, 0.1],
onRange: function (item) {
return item.range[0] + 'x';
},
mounted: function (...args) {
console.info(args);
},
},
],
}, async () => {
const { sleep } = Artplayer.utils;
art.setting.show = true;
console.log(art.setting.builtin);
console.log(art.setting.find('aspect-ratio'));
console.log(art.setting.find('aspect-ratio2'));
await sleep(1000);
art.setting.resize();
await sleep(1000);
art.setting.inactivate(art.setting.find('subtitle'));
art.setting.remove('aspect-ratio');
try {
art.setting.remove('aspect-ratio2');
} catch (error) {
console.log(error.message);
}
await sleep(1000);
art.setting.update({
name: 'subtitle-offset',
html: 'new offset',
range: [5, -11, 11, 1],
});
await sleep(1000);
art.setting.find('subtitle-offset').range = [0, -0, 10, 1];
await sleep(1000);
art.setting.update({
name: 'subtitle-offset2',
html: 'new offset 2',
range: [5, -11, 11, 1],
onChange(item) {
return item.range[0] + 's';
},
});
await sleep(1000);
art.setting.update({
name: 'flip',
html: 'new flip',
tooltip: 'OFF',
switch: false,
});
await sleep(1000);
art.setting.find('flip').switch = true;
await sleep(1000);
art.setting.update({
name: 'flip2',
html: 'new flip2',
tooltip: 'OFF',
switch: true,
});
await sleep(1000);
try {
art.setting.add({
name: 'flip2',
html: 'new flip2',
tooltip: 'OFF',
switch: true,
});
} catch (error) {
console.log(error.message);
}
});
+13 -68
View File
@@ -1,69 +1,14 @@
if (window.lastThumbnail) {
window.lastThumbnail.destroy();
}
// npm i artplayer-plugin-thumbnail
// import artplayerPluginThumbnail from 'artplayer-plugin-thumbnail';
var $popups = document.querySelector('.popups');
var $popinner = document.querySelector('.popinner');
var $artplayer = document.querySelector('.artplayer-app');
$artplayer.innerHTML = 'Drop video file here or click to upload.';
var thumbnail = new ArtplayerToolThumbnail({
fileInput: $artplayer,
number: 60, // 数量
width: 160, // 宽度
column: 10, // 列数
begin: 0, // 开始
end: NaN, // 结束
});
window.lastThumbnail = thumbnail;
thumbnail.on('file', function (file) {
console.log('Read video successfully: ' + file.name);
});
thumbnail.on('video', function (video) {
console.log('Video size: ' + video.videoWidth + ' x ' + video.videoHeight);
console.log('Video duration: ' + video.duration + 's');
thumbnail.start();
});
thumbnail.on('canvas', function (canvas) {
console.log('Build canvas successfully');
console.log('Canvas size: ' + canvas.width + ' x ' + canvas.height);
console.log('Preview density: ' + thumbnail.density + ' p/s');
});
thumbnail.on('update', function (url, percentage) {
console.log('Processing: ' + Math.floor(percentage.toFixed(2) * 100) + '%');
$popups.style.display = 'flex';
$popinner.style.backgroundImage = 'url(' + url + ')';
});
thumbnail.on('download', function (name) {
console.log('Start download preview: ' + name);
});
thumbnail.on('done', function () {
$popups.style.display = 'none';
thumbnail.download();
console.log('Build preview image complete');
[...Artplayer.instances].forEach(function (art) {
art.destroy(true);
});
new Artplayer({
container: $artplayer,
url: thumbnail.videoUrl,
autoSize: true,
poster: thumbnail.thumbnailUrl,
thumbnails: {
url: thumbnail.thumbnailUrl,
number: thumbnail.option.number,
column: thumbnail.option.column,
},
});
console.log('Build player complete');
});
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
plugins: [
artplayerPluginThumbnail({
width: 160,
number: 100,
scale: 1,
}),
],
});
+24
View File
@@ -0,0 +1,24 @@
// Depends on:
// https://glomex.github.io/vast-ima-player/
// https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side
// Google's IMA SDK are blocked by your Ad blocker.
// Please Turn Off Your Ad Blocker.
// npm i artplayer-plugin-vast
// import artplayerPluginVast from 'artplayer-plugin-vast';
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
fullscreen: true,
fullscreenWeb: true,
plugins: [
artplayerPluginVast(({ playUrl, imaPlayer, ima }) => {
// Play the ad when the video is played
art.once('play', () => {
playUrl('https://artplayer.org/assets/vast/linear-ad.xml');
});
}),
],
});
+13 -7
View File
@@ -47,17 +47,22 @@
});
var libUris = [
'./assets/ts/artplayer.d.ts',
'./assets/ts/artplayer-plugin-ads.d.ts',
'./assets/ts/artplayer-plugin-control.d.ts',
'./assets/ts/artplayer-plugin-danmuku.d.ts',
'./assets/ts/artplayer-plugin-dash-quality.d.ts',
'./assets/ts/artplayer-plugin-hls-quality.d.ts',
'./assets/ts/artplayer-plugin-iframe.d.ts',
'./assets/ts/artplayer-plugin-asr.d.ts',
'./assets/ts/artplayer-plugin-ambilight.d.ts',
'./assets/ts/artplayer-plugin-auto-thumbnail.d.ts',
'./assets/ts/artplayer-plugin-chapter.d.ts',
'./assets/ts/artplayer-plugin-chromecast.d.ts',
'./assets/ts/artplayer-plugin-danmuku-mask.d.ts',
'./assets/ts/artplayer-plugin-danmuku.d.ts',
'./assets/ts/artplayer-plugin-dash-control.d.ts',
'./assets/ts/artplayer-plugin-hls-control.d.ts',
'./assets/ts/artplayer-plugin-iframe.d.ts',
'./assets/ts/artplayer-plugin-libass.d.ts',
'./assets/ts/artplayer-plugin-multiple-subtitles.d.ts',
'./assets/ts/artplayer-plugin-vast.d.ts',
'./assets/ts/artplayer-plugin-vtt-thumbnail.d.ts',
'./assets/ts/artplayer.d.ts',
];
for (let index = 0; index < libUris.length; index++) {
@@ -74,6 +79,7 @@
editor = monaco.editor.create($codeMirror, {
theme: 'vs-dark',
folding: true,
automaticLayout: true,
quickSuggestions: {
other: true,
@@ -296,4 +302,4 @@
restart();
}
});
})();
})();
+26
View File
@@ -0,0 +1,26 @@
WEBVTT
1
00:00:00.000 --> 00:01:30.000
<i>[1]: 00:00 -> 01:30</i>
<i>[1]: 00:00 -> 01:30</i>
2
00:00:00.000 --> 00:00:05.000
<b>[2]: 00:00 -> 00:05</b>
<b>[2]: 00:00 -> 00:05</b>
3
00:00:00.000 --> 00:00:10.000
<b style="color:red">[3]: 00:00 -> 00:10</b>
<b style="color:red">[3]: 00:00 -> 00:10</b>
4
00:00:05.000 --> 00:00:20.000
<i style="color:yellow">[4]: 00:05 -> 00:20</i>
<i style="color:yellow">[4]: 00:05 -> 00:20</i>
5
00:00:10.000 --> 00:00:30.000
<del style="font-size:24px">[5]: 00:20 -> 01:00</del>
<del style="font-size:24px">[5]: 00:20 -> 01:00</del>
Binary file not shown.
+50 -50
View File
@@ -1,52 +1,52 @@
import type Artplayer from 'artplayer';
interface Option {
/**
* 广告源文本,支持视频链接、图片链接、HTML文本
*/
source: string
/**
* 知名广告的类型:'video' | 'image' | 'html'
*/
type: 'video' | 'image' | 'html'
/**
* 广告必看的时长,单位为秒
*/
playDuration?: number
/**
* 广告总的时长,单位为秒
*/
totalDuration?: number
/**
* 视频广告是否默认静音
*/
muted?: boolean
}
interface Ads {
name: 'artplayerPluginAds'
/**
* 跳过广告
*/
skip: () => void
/**
* 暂停广告
*/
pause: () => void
/**
* 播放广告
*/
play: () => void
}
declare const artplayerPluginAds: (option: Option) => (art: Artplayer) => Ads
export default artplayerPluginAds
export = artplayerPluginAds;
export as namespace artplayerPluginAds;
type Option = {
/**
* 广告源文本,支持视频链接、图片链接、HTML文本
*/
source: string;
/**
* 知名广告的类型:'video' | 'image' | 'html'
*/
type: 'video' | 'image' | 'html';
/**
* 广告必看的时长,单位为秒
*/
playDuration?: number;
/**
* 广告总的时长,单位为秒
*/
totalDuration?: number;
/**
* 视频广告是否默认静音
*/
muted?: boolean;
};
type Ads = {
name: 'artplayerPluginAds';
/**
* 跳过广告
*/
skip: () => void;
/**
* 暂停广告
*/
pause: () => void;
/**
* 播放广告
*/
play: () => void;
};
declare const artplayerPluginAds: (option: Option) => (art: Artplayer) => Ads;
export as namespace artplayerPluginAds;
+20
View File
@@ -0,0 +1,20 @@
interface Option {
blur?: string
opacity?: number
frequency?: number
zIndex?: number
duration?: number
}
interface Result {
name: 'artplayerPluginAmbilight'
start: () => void
stop: () => void
}
declare const artplayerPluginAmbilight: (option: Option) => (art: Artplayer) => Result
export default artplayerPluginAmbilight
export = artplayerPluginAmbilight;
export as namespace artplayerPluginAmbilight;
+26
View File
@@ -0,0 +1,26 @@
interface AudioChunk {
pcm: ArrayBuffer
wav: ArrayBuffer
}
interface AsrPluginOption {
length?: number
interval?: number
sampleRate?: number
autoHideTimeout?: number
onAudioChunk?: (chunk: AudioChunk) => void | Promise<void>
}
interface AsrPluginInstance {
name: 'artplayerPluginAsr'
stop: () => void
hide: () => void
append: (subtitle: string) => void
}
declare function artplayerPluginAsr(option?: AsrPluginOption): (art: Artplayer) => AsrPluginInstance
export default artplayerPluginAsr
export = artplayerPluginAsr;
export as namespace artplayerPluginAsr;
+17
View File
@@ -0,0 +1,17 @@
interface Option {
url?: string
width?: number
number?: number
scale?: number
}
interface Result {
name: 'artplayerPluginAutoThumbnail'
}
declare const artplayerPluginAutoThumbnail: (option: Option) => (art: Artplayer) => Result
export default artplayerPluginAutoThumbnail
export = artplayerPluginAutoThumbnail;
export as namespace artplayerPluginAutoThumbnail;
+21
View File
@@ -0,0 +1,21 @@
type Chapters = {
start: number
end: number
title: string
}[]
interface Option {
chapters?: Chapters
}
interface Result {
name: 'artplayerPluginChapter'
update: (option: Option) => void
}
declare const artplayerPluginChapter: (option: Option) => (art: Artplayer) => Result
export default artplayerPluginChapter
export = artplayerPluginChapter;
export as namespace artplayerPluginChapter;
+15 -15
View File
@@ -1,17 +1,17 @@
import type Artplayer from 'artplayer';
interface Option {
url?: string
sdk?: string
icon?: string
mimeType?: string
}
interface Chromecast {
name: 'artplayerPluginChromecast'
}
declare const artplayerPluginChromecast: (option: Option) => (art: Artplayer) => Chromecast
export default artplayerPluginChromecast
export = artplayerPluginChromecast;
export as namespace artplayerPluginChromecast;
type Option = {
url?: string;
sdk?: string;
icon?: string;
mimeType?: string;
};
type Chromecast = {
name: 'artplayerPluginChromecast';
};
declare const artplayerPluginChromecast: (option: Option) => (art: Artplayer) => Chromecast;
export as namespace artplayerPluginChromecast;
-13
View File
@@ -1,13 +0,0 @@
import type Artplayer from 'artplayer';
export = artplayerPluginControl;
export as namespace artplayerPluginControl;
type Option = {};
type Control = {
name: 'artplayerPluginControl';
enable: Boolean;
};
declare const artplayerPluginControl: (option?: Option) => (art: Artplayer) => Control;
+25
View File
@@ -0,0 +1,25 @@
interface Option {
solutionPath?: string
modelSelection?: number
smoothSegmentation?: boolean
minDetectionConfidence?: number
minTrackingConfidence?: number
selfieMode?: boolean
drawContour?: boolean
foregroundThreshold?: number
opacity?: number
maskBlurAmount?: number
}
interface Result {
name: 'artplayerPluginDanmukuMask'
start: () => Promise<void>
stop: () => void
}
declare const artplayerPluginDanmukuMask: (option?: Option) => (art: Artplayer) => Result
export default artplayerPluginDanmukuMask
export = artplayerPluginDanmukuMask;
export as namespace artplayerPluginDanmukuMask;
+253 -212
View File
@@ -1,214 +1,255 @@
import type Artplayer from 'artplayer';
type Mode = 0 | 1 | 2
type Danmuku = Danmu[] | string | (() => Promise<Danmu[]>) | Promise<Danmu[]>
interface Slider {
min?: number
max?: number
steps?: {
name?: string
value?: any
show?: boolean
}[]
}
interface Danmu {
/**
* 弹幕文本
*/
text: string
/**
* 弹幕发送模式: 0: 滚动,1: 顶部,2: 底部
*/
mode?: Mode
/**
* 弹幕颜色
*/
color?: string
/**
* 弹幕出现的时间,单位为秒
*/
time?: number
/**
* 弹幕是否有描边, 默认为 false
*/
border?: boolean
/**
* 弹幕自定义样式
*/
style?: Partial<CSSStyleDeclaration>
}
interface Option {
/**
* 弹幕数据: 函数,数组,Promise,URL
*/
danmuku: Danmuku
/**
* 弹幕持续时间,范围在[1 ~ 10]
*/
speed?: number
/**
* 弹幕上下边距,支持像素数字和百分比
*/
margin?: [number | `${number}%`, number | `${number}%`]
/**
* 弹幕透明度,范围在[0 ~ 1]
*/
opacity?: number
/**
* 默认弹幕颜色,可以被单独弹幕项覆盖
*/
color?: string
/**
* 弹幕模式: 0: 滚动,1: 顶部,2: 底部
*/
mode?: Mode
/**
* 弹幕可见的模式
*/
modes?: Mode[]
/**
* 弹幕字体大小,支持像素数字和百分比
*/
fontSize?: number | `${number}%`
/**
* 弹幕是否防重叠
*/
antiOverlap?: boolean
/**
* 是否同步播放速度
*/
synchronousPlayback?: boolean
/**
* 弹幕发射器挂载点, 默认为播放器控制栏中部
*/
mount?: HTMLDivElement | string
/**
* 是否开启弹幕热度图
*/
heatmap?:
| boolean
| {
xMin?: number
xMax?: number
yMin?: number
yMax?: number
scale?: number
opacity?: number
minHeight?: number
sampling?: number
smoothing?: number
flattening?: number
}
/**
* 当播放器宽度小于此值时,弹幕发射器置于播放器底部
*/
width?: number
/**
* 热力图数据
*/
points?: any[]
/**
* 弹幕载入前的过滤器,只支持返回布尔值
*/
filter?: (danmu: Danmu) => boolean
/**
* 弹幕发送前的过滤器,支持返回 Promise
*/
beforeEmit?: (danmu: Danmu) => boolean | Promise<boolean>
/**
* 弹幕显示前的过滤器,支持返回 Promise
*/
beforeVisible?: (danmu: Danmu) => boolean | Promise<boolean>
/**
* 弹幕是否可见
*/
visible?: boolean
/**
* 是否开启弹幕发射器
*/
emitter?: boolean
/**
* 弹幕输入框最大长度, 范围在[1 ~ 1000]
*/
maxLength?: number
/**
* 输入框锁定时间,范围在[1 ~ 60]
*/
lockTime?: number
/**
* 弹幕主题,只在自定义挂载时生效
*/
theme?: 'light' | 'dark'
/**
* 不透明度配置项
*/
OPACITY?: Slider
/**
* 弹幕速度配置项
*/
SPEED?: Slider
/**
* 显示区域配置项
*/
MARGIN?: Slider
/**
* 弹幕字号配置项
*/
FONT_SIZE?: Slider
/**
* 颜色列表配置项
*/
COLOR?: string[]
}
interface Result {
name: 'artplayerPluginDanmuku'
/**
* 发送一条实时弹幕
*/
emit: (danmu: Danmu) => Result
/**
* 重载弹幕源,或者切换新弹幕
*/
load: (danmuku?: Danmuku) => Promise<Result>
/**
* 实时改变弹幕配置
*/
config: (option: Option) => Result
/**
* 隐藏弹幕层
*/
hide: () => Result
/**
* 显示弹幕层
*/
show: () => Result
/**
* 挂载弹幕输入框
*/
mount: (el?: HTMLDivElement | string) => void
/**
* 重置弹幕
*/
reset: () => Result
/**
* 弹幕配置
*/
option: Option
/**
* 是否隐藏弹幕层
*/
isHide: boolean
/**
* 是否弹幕层停止状态
*/
isStop: boolean
}
declare const artplayerPluginDanmuku: (option: Option) => (art: Artplayer) => Result
export default artplayerPluginDanmuku
export = artplayerPluginDanmuku;
export as namespace artplayerPluginDanmuku;
type Mode = 0 | 1 | 2;
type Danmu = {
/**
* 弹幕文本
*/
text: string;
/**
* 弹幕发送模式: 0: 滚动,1: 顶部,2: 底部
*/
mode?: Mode;
/**
* 弹幕颜色
*/
color?: string;
/**
* 弹幕出现的时间,单位为秒
*/
time?: number;
/**
* 弹幕是否有描边, 默认为 false
*/
border?: boolean;
/**
* 弹幕自定义样式
*/
style?: Partial<CSSStyleDeclaration>;
/**
* 弹幕文本是否转义, 默认为 true
*/
escape?: boolean;
};
type Option = {
/**
* 弹幕数据: 函数,数组,Promise,URL
*/
danmuku: Danmu[] | string | (() => Promise<Danmu[]>) | Promise<Danmu[]>;
/**
* 弹幕持续时间,范围在[1 ~ 10]
*/
speed?: number;
/**
* 弹幕上下边距,支持像素数字和百分比
*/
margin?: [number | `${number}%`, number | `${number}%`];
/**
* 弹幕透明度,范围在[0 ~ 1]
*/
opacity?: number;
/**
* 默认弹幕颜色,可以被单独弹幕项覆盖
*/
color?: string;
/**
* 弹幕模式: 0: 滚动,1: 顶部,2: 底部
*/
mode?: Mode;
/**
* 弹幕可见的模式
*/
modes?: Mode[];
/**
* 弹幕字体大小,支持像素数字和百分比
*/
fontSize?: number | `${number}%`;
/**
* 弹幕是否防重叠
*/
antiOverlap?: boolean;
/**
* 是否同步播放速度
*/
synchronousPlayback?: boolean;
/**
* 弹幕发射器挂载点, 默认为播放器控制栏中部
*/
mount?: HTMLDivElement | string;
/**
* 是否开启弹幕热度图
*/
heatmap?:
| boolean
| {
xMin?: number;
xMax?: number;
yMin?: number;
yMax?: number;
scale?: number;
opacity?: number;
minHeight?: number;
sampling?: number;
smoothing?: number;
flattening?: number;
};
/**
* 热力图数据
*/
points?: any[];
/**
* 弹幕载入前的过滤器,只支持返回布尔值
*/
filter?: (danmu: Danmu) => boolean;
/**
* 弹幕发送前的过滤器,支持返回 Promise
*/
beforeEmit?: (danmu: Danmu) => boolean | Promise<boolean>;
/**
* 弹幕显示前的过滤器,支持返回 Promise
*/
beforeVisible?: (danmu: Danmu) => boolean | Promise<boolean>;
/**
* 弹幕是否可见
*/
visible?: boolean;
/**
* 弹幕输入框最大长度, 范围在[1 ~ 1000]
*/
maxLength?: number;
/**
* 输入框锁定时间,范围在[1 ~ 60]
*/
lockTime?: number;
/**
* 弹幕主题,只在自定义挂载时生效
*/
theme?: 'light' | 'dark';
};
type Danmuku = {
name: 'artplayerPluginDanmuku';
/**
* 发送一条实时弹幕
*/
emit: (danmu: Danmu) => Danmuku;
/**
* 重载弹幕源,或者切换新弹幕
*/
load: () => Promise<Danmuku>;
/**
* 实时改变弹幕配置
*/
config: (option: Option) => Danmuku;
/**
* 隐藏弹幕层
*/
hide: () => Danmuku;
/**
* 显示弹幕层
*/
show: () => Danmuku;
/**
* 挂载弹幕输入框
*/
mount: (el?: HTMLDivElement | string) => void;
/**
* 重置弹幕
*/
reset: () => Danmuku;
/**
* 弹幕配置
*/
option: Option;
/**
* 是否隐藏弹幕层
*/
isHide: boolean;
/**
* 是否弹幕层停止状态
*/
isStop: boolean;
};
declare const artplayerPluginDanmuku: (option: Option) => (art: Artplayer) => Danmuku;
export as namespace artplayerPluginDanmuku;
+17
View File
@@ -0,0 +1,17 @@
interface Config {
control?: boolean
setting?: boolean
title?: string
auto?: string
getName?: (level: object) => string
}
declare const artplayerPluginDashControl: (option: { quality?: Config, audio?: Config }) => (art: Artplayer) => {
name: 'artplayerPluginDashControl'
update: () => void
}
export default artplayerPluginDashControl
export = artplayerPluginDashControl;
export as namespace artplayerPluginDashControl;
-14
View File
@@ -1,14 +0,0 @@
import type Artplayer from 'artplayer';
export = artplayerPluginDashQuality;
export as namespace artplayerPluginDashQuality;
declare const artplayerPluginDashQuality: (option: {
control?: boolean;
setting?: boolean;
title?: string;
auto?: string;
getResolution?(level: any): String;
}) => (art: Artplayer) => {
name: 'artplayerPluginDashQuality';
};
+17
View File
@@ -0,0 +1,17 @@
interface Config {
control?: boolean
setting?: boolean
title?: string
auto?: string
getName?: (level: object) => string
}
declare const artplayerPluginHlsControl: (option: { quality?: Config, audio?: Config }) => (art: Artplayer) => {
name: 'artplayerPluginHlsControl'
update: () => void
}
export default artplayerPluginHlsControl
export = artplayerPluginHlsControl;
export as namespace artplayerPluginHlsControl;
-14
View File
@@ -1,14 +0,0 @@
import type Artplayer from 'artplayer';
export = artplayerPluginHlsQuality;
export as namespace artplayerPluginHlsQuality;
declare const artplayerPluginHlsQuality: (option: {
control?: boolean;
setting?: boolean;
title?: string;
auto?: string;
getResolution?(level: any): String;
}) => (art: Artplayer) => {
name: 'artplayerPluginHlsQuality';
};
+26 -24
View File
@@ -1,30 +1,32 @@
export = ArtplayerPluginIframe;
export as namespace ArtplayerPluginIframe;
type Message = {
type: string;
data: any;
id?: number;
};
interface Message {
type: string
data: any
id?: number
}
declare class ArtplayerPluginIframe {
constructor(option: { iframe: HTMLIFrameElement; url: string });
constructor(option: { iframe: HTMLIFrameElement, url: string })
static iframe: boolean;
static postMessage(message: Message): void;
static onMessage(event: MessageEvent & { data: Message }): void;
static inject(): void;
static iframe: boolean
static postMessage(message: Message): void
static onMessage(event: MessageEvent & { data: Message }): void
static inject(): void
readonly promises: Record<number, { resove: Function; reject: Function }>;
readonly injected: boolean;
readonly destroyed: boolean;
readonly $iframe: HTMLIFrameElement;
readonly url: string;
readonly messageCallback: (...args: any[]) => any;
readonly promises: Record<number, { resove: (...args: any[]) => any, reject: (...args: any[]) => any }>
readonly injected: boolean
readonly destroyed: boolean
readonly $iframe: HTMLIFrameElement
readonly url: string
readonly messageCallback: (...args: any[]) => any
onMessage(event: MessageEvent & { data: Message }): void;
postMessage(message: Message): Promise<any>;
commit<T extends (...args: any[]) => any>(callback: T): Promise<ReturnType<T>>;
message(callback: (...args: any[]) => any): void;
destroy(): void;
onMessage(event: MessageEvent & { data: Message }): void
postMessage(message: Message): Promise<any>
commit<T extends (...args: any[]) => any>(callback: T): Promise<ReturnType<T>>
message(callback: (...args: any[]) => any): void
destroy(): void
}
export default ArtplayerPluginIframe
export = artplayerPluginIframe;
export as namespace artplayerPluginIframe;
+14 -16
View File
@@ -1,17 +1,15 @@
import type Artplayer from 'artplayer';
import type SubtitlesOctopus from '@hrgui/libass-wasm-ts';
import { type Options } from 'libass-wasm';
export = artplayerPluginAss;
export as namespace artplayerPluginAss;
declare const artplayerPluginAss: (options: Options) => (art: Artplayer) => {
name: 'artplayerPluginLibass';
libass: SubtitlesOctopus;
visible: boolean;
init: () => void;
switch: (url: string) => void;
show: () => void;
hide: () => void;
destroy: () => void;
};
name: 'artplayerPluginLibass'
libass: SubtitlesOctopus
visible: boolean
init: () => void
switch: (url: string) => void
show: () => void
hide: () => void
destroy: () => void
}
export default artplayerPluginAss
export = artplayerPluginLibass;
export as namespace artplayerPluginLibass;
+14 -14
View File
@@ -1,16 +1,16 @@
import type Artplayer from 'artplayer';
declare const artplayerPluginMultipleSubtitles: (option: {
subtitles: {
url?: string
name?: string
type?: 'vtt' | 'srt' | 'ass'
encoding?: string
onParser?: (...args: object[]) => object
}[]
}) => (art: Artplayer) => {
name: 'multipleSubtitles'
}
export default artplayerPluginMultipleSubtitles
export = artplayerPluginMultipleSubtitles;
export as namespace artplayerPluginMultipleSubtitles;
declare const artplayerPluginMultipleSubtitles: (option: {
subtitles: {
url?: string;
name?: string;
type?: 'vtt' | 'srt' | 'ass';
encoding?: string;
onParser?(...args: object[]): object;
}[];
}) => (art: Artplayer) => {
name: 'multipleSubtitles';
};
export as namespace artplayerPluginMultipleSubtitles;
+33
View File
@@ -0,0 +1,33 @@
declare global {
interface Window {
artplayerPluginVast?: typeof artplayerPluginVast
}
}
type PlayUrlFn = (url: string) => void
type PlayResFn = (res: string) => void
interface VastPluginContext {
art: Artplayer
ima: any // Replace 'any' with a more specific type if available, or declare google.ima type above
imaPlayer: Player
playUrl: PlayUrlFn
playRes: PlayResFn
container: HTMLDivElement | null
}
export type ArtplayerPluginVastOption = (params: VastPluginContext) => void | Promise<void>
export interface ArtplayerPluginVastInstance {
name: 'artplayerPluginVast'
destroy?: () => void
}
declare function artplayerPluginVast(
option: ArtplayerPluginVastOption,
): (art: Artplayer) => ArtplayerPluginVastInstance
export default artplayerPluginVast
export = artplayerPluginVast;
export as namespace artplayerPluginVast;
+8 -8
View File
@@ -1,10 +1,10 @@
import type Artplayer from 'artplayer';
declare const artplayerPluginVttThumbnail: (option: { vtt?: string, style?: Partial<CSSStyleDeclaration> }) => (
art: Artplayer,
) => {
name: 'artplayerPluginVttThumbnail'
}
export default artplayerPluginVttThumbnail
export = artplayerPluginVttThumbnail;
export as namespace artplayerPluginVttThumbnail;
declare const artplayerPluginVttThumbnail: (option: { vtt?: string; style?: Partial<CSSStyleDeclaration> }) => (
art: Artplayer,
) => {
name: 'artplayerPluginVttThumbnail';
};
export as namespace artplayerPluginVttThumbnail;
+1123 -1066
View File
File diff suppressed because it is too large. Load diff
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
<Ad>
<InLine>
<AdSystem><![CDATA[TEST-AD-SYSTEM]]]></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<Impression><![CDATA[https://impression-pixel]]></Impression>
<Creatives>
<Creative>
<Linear>
<Duration><![CDATA[00:00:01]]></Duration>
<VideoClicks>
<ClickThrough><![CDATA[https://artplayer.org/assets/vast/]]></ClickThrough>
</VideoClicks>
<MediaFiles>
<MediaFile delivery="progressive" bitrate="400" width="0" height="0" type="video/mp4">
<![CDATA[https://artplayer.org/assets/vast/linear-video-1s.mp4]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
<Ad>
<InLine>
<AdSystem><![CDATA[TEST-AD-SYSTEM]]]></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<Impression><![CDATA[https://impression-pixel]]></Impression>
<Creatives>
<Creative>
<Linear>
<Duration><![CDATA[00:00:02]]></Duration>
<VideoClicks>
<ClickThrough><![CDATA[https://artplayer.org/assets/vast/]]></ClickThrough>
</VideoClicks>
<MediaFiles>
<MediaFile delivery="progressive" bitrate="400" width="0" height="0" type="video/mp4">
<![CDATA[https://artplayer.org/assets/vast/linear-video-2s.mp4]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
<Ad>
<InLine>
<AdSystem><![CDATA[TEST-AD-SYSTEM]]]></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<Impression><![CDATA[https://impression-pixel]]></Impression>
<Creatives>
<Creative>
<Linear>
<Duration><![CDATA[00:00:04]]></Duration>
<VideoClicks>
<ClickThrough><![CDATA[https://artplayer.org/assets/vast/]]></ClickThrough>
</VideoClicks>
<MediaFiles>
<MediaFile delivery="progressive" bitrate="400" width="0" height="0" type="video/mp4">
<![CDATA[https://artplayer.org/assets/vast/linear-video.mp4]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

+31
View File
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
<Ad>
<InLine>
<AdSystem><![CDATA[TEST-AD-SYSTEM]]]></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<Impression><![CDATA[https://impression-pixel]]></Impression>
<Creatives>
<Creative>
<NonLinearAds>
<NonLinear width="728" height="90" minSuggestedDuration="00:00:05" scalable="true" maintainAspectRatio="true">
<StaticResource creativeType="image/png"><![CDATA[https://artplayer.org/assets/vast/nonlinear-728x90.png]]></StaticResource>
<NonLinearClickTracking><![CDATA[https://clickTracking]]></NonLinearClickTracking>
<NonLinearClickThrough><![CDATA[https://artplayer.org/assets/vast/]]></NonLinearClickThrough>
</NonLinear>
<NonLinear width="480" height="70" minSuggestedDuration="00:00:05" scalable="true" maintainAspectRatio="true">
<StaticResource creativeType="image/png"><![CDATA[https://artplayer.org/assets/vast/nonlinear-480x70.png]]></StaticResource>
<NonLinearClickTracking><![CDATA[https://clickTracking]]></NonLinearClickTracking>
<NonLinearClickThrough><![CDATA[https://artplayer.org/assets/vast/]]></NonLinearClickThrough>
</NonLinear>
<NonLinear width="320" height="50" minSuggestedDuration="00:00:05" scalable="true" maintainAspectRatio="true">
<StaticResource creativeType="image/png"><![CDATA[https://artplayer.org/assets/vast/nonlinear-320x50.png]]></StaticResource>
<NonLinearClickTracking><![CDATA[https://clickTracking]]></NonLinearClickTracking>
<NonLinearClickThrough><![CDATA[https://artplayer.org/assets/vast/]]></NonLinearClickThrough>
</NonLinear>
</NonLinearAds>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>
+39
View File
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
<Ad>
<Wrapper fallbackOnNoAd="true">
<AdSystem></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<VASTAdTagURI>
<![CDATA[]]>
</VASTAdTagURI>
<Extensions>
<Extension type="waterfall" fallback_index="0"/>
</Extensions>
</Wrapper>
</Ad>
<Ad>
<Wrapper fallbackOnNoAd="true">
<AdSystem></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<VASTAdTagURI>
<![CDATA[does-not-exist]]>
</VASTAdTagURI>
<Extensions>
<Extension type="waterfall" fallback_index="1"/>
</Extensions>
</Wrapper>
</Ad>
<Ad>
<Wrapper>
<AdSystem></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<VASTAdTagURI>
<![CDATA[https://artplayer.org/assets/vast/linear-ad.xml]]>
</VASTAdTagURI>
<Extensions>
<Extension type="waterfall" fallback_index="2"/>
</Extensions>
</Wrapper>
</Ad>
</VAST>
+80
View File
@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<VMAP xmlns:vmap="http://www.iab.net/vmap-1.0" version="1.0">
<vmap:AdBreak timeOffset="start" breakType="linear" breakId="start-0">
<vmap:AdSource id="start-0" allowMultipleAds="true" followRedirects="false">
<vmap:VASTAdData>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
<Ad sequence="1">
<Wrapper>
<AdSystem></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<VASTAdTagURI>
<![CDATA[https://artplayer.org/assets/vast/linear-ad.xml]]>
</VASTAdTagURI>
</Wrapper>
</Ad>
<Ad sequence="2">
<Wrapper>
<AdSystem></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<VASTAdTagURI>
<![CDATA[https://artplayer.org/assets/vast/linear-ad.xml]]>
</VASTAdTagURI>
</Wrapper>
</Ad>
</VAST>
</vmap:VASTAdData>
</vmap:AdSource>
</vmap:AdBreak>
<vmap:AdBreak timeOffset="00:00:05.000" breakType="linear" breakId="midroll-0">
<vmap:AdSource id="midroll-0" allowMultipleAds="true" followRedirects="false">
<vmap:VASTAdData>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
<Ad>
<Wrapper>
<AdSystem></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<VASTAdTagURI>
<![CDATA[https://artplayer.org/assets/vast/nonlinear-ad.xml]]>
</VASTAdTagURI>
</Wrapper>
</Ad>
</VAST>
</vmap:VASTAdData>
</vmap:AdSource>
</vmap:AdBreak>
<vmap:AdBreak timeOffset="00:00:15.000" breakType="linear" breakId="midroll-1">
<vmap:AdSource id="midroll-1" allowMultipleAds="true" followRedirects="false">
<vmap:VASTAdData>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
<Ad>
<Wrapper>
<AdSystem></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<VASTAdTagURI>
<![CDATA[https://artplayer.org/assets/vast/linear-ad.xml]]>
</VASTAdTagURI>
</Wrapper>
</Ad>
</VAST>
</vmap:VASTAdData>
</vmap:AdSource>
</vmap:AdBreak>
<vmap:AdBreak timeOffset="end" breakType="linear" breakId="postroll-0">
<vmap:AdSource id="postroll-0" allowMultipleAds="true" followRedirects="false">
<vmap:VASTAdData>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
<Ad>
<Wrapper>
<AdSystem></AdSystem>
<Error><![CDATA[https://error-pixel?[ERRORCODE]]]></Error>
<VASTAdTagURI>
<![CDATA[https://artplayer.org/assets/vast/linear-ad.xml]]>
</VASTAdTagURI>
</Wrapper>
</Ad>
</VAST>
</vmap:VASTAdData>
</vmap:AdSource>
</vmap:AdBreak>
</VMAP>
@@ -0,0 +1,9 @@
/*!
* artplayer-plugin-ads.js v2.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,n,l,t,i,a,r,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var a="function"==typeof d[t]&&d[t];if(!l&&a)return a(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;f<n.length;f++)y(n[f]);if(l){var g=y(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"2Uydo":[function(e,n,l,t){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(l),i.export(l,"default",()=>o);var a=e("bundle-text:./style.less"),r=i.interopDefault(a);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:a},icons:{volume:r,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,D=0,j=null,P=!1,$=!1,k=!1;function M(e,n){return n.replace("%s",e)}function O(){P=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function A(){P||(j=setTimeout(()=>{D+=1;let n=e.playDuration-D;n>=1?x.innerHTML=M(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,k||(k=!0)),h.innerHTML=M(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?O():A()},1e3))}function _(){P||clearTimeout(j)}function T(){$||($=!0,function(){n.template.$ads=f(a,'<div class="artplayer-plugin-ads"></div>'),m=f(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),w=f(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:M(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${M(e.totalDuration,e.i18n.countdown)}</div></div>`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{k&&O()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,r),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",O),n.proxy(m,"loadedmetadata",()=>{A(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(A(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?_():A()}))}return n.on("ready",()=>{n.once("play",T),n.once("video:playing",T)}),{name:"arLine truncated
//# sourceMappingURL=artplayer-plugin-ads.esm.js.map
@@ -0,0 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCgBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAhBxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAgBe,SAAS,EAAmB,CAAM,EAC/C,OAAO,AAAC,IAdR,GAAM,CACJ,QAAA,CAAO,CACP,MAAO,CAAE,YAAA,CAAW,CAAE,CACvB,CAAG,AAYW,EAZP,WAAW,CACb,EAAM,EAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,QAGnC,EACE,AAHY,CAAG,CAAC,EAAE,CACN,CAAG,CAAC,EAAE,CAAG,KAEJ,EACjB,CAAC,aAAa,EAAE,EAAQ,0CAA0C,EAAE,EAAmB,OAAO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 truncated
+8 -1
View File
@@ -1 +1,8 @@
/*! * artplayer-plugin-ads.js v2.0.0 * Github:https://github.com/zhw2590582/ArtPlayer * (c) 2017-2024 Harvey Zack * Released under the MIT License. */ !function(e,n,l,t,i){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},r="function"==typeof a[t]&&a[t],o=r.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(n,l){if(!o[n]){if(!e[n]){var i="function"==typeof a[t]&&a[t];if(!l&&i)return i(n,!0);if(r)return r(n,!0);if(d&&"string"==typeof n)return d(n);var s=Error("Cannot find module '"+n+"'");throw s.code="MODULE_NOT_FOUND",s}c.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},c.cache={};var u=o[n]=new p.Module(n);e[n][0].call(u.exports,c,u,u.exports,this)}return o[n].exports;function c(e){var n=c.resolve(e);return!1===n?{}:p(n)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=o,p.parent=r,p.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(p,"root",{get:function(){return a[t]}}),a[t]=p;for(var s=0;s<n.length;s++)p(n[s]);if(l){var u=p(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define(function(){return u})}}({hUYA0:[function(e,n,l){var t=e("@parcel/transformer-js/src/esmodule-helpers.js");t.defineInteropFlag(l),t.export(l,"default",()=>r);var i=e("bundle-text:./style.less"),a=t.interopDefault(i);function r(e){return n=>{!function(e){let{version:n,utils:{errorHandle:l}}=e.constructor,t=n.split(".").map(Number);l(t[0]+t[1]/100>=5,`Artplayer.js@${n}is not compatible the artplayerPluginAds@${r.version}. Please update it to version Artplayer.js@5.x.x`)}(n);let{template:{$player:l},icons:{volume:t,volumeClose:i,fullscreenOn:a,fullscreenOff:o,loading:d},constructor:{validator:p,utils:{query:s,append:u,setStyle:c}}}=n;e=p({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let y=null,f=null,g=null,m=null,x=null,v=null,h=0,b=null,w=!1,j=!1,D=!1;function P(e,n){return n.replace("%s",e)}function $(){w=!0,n.play(),e.video&&y.pause(),c(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function k(){w||(b=setTimeout(()=>{h+=1;let n=e.playDuration-h;n>=1?g.innerHTML=P(n,e.i18n.canBeClosed):(g.innerHTML=e.i18n.close,D||(D=!0)),m.innerHTML=P(e.totalDuration-h,e.i18n.countdown),h>=e.totalDuration?$():k()},1e3))}function A(){w||clearTimeout(b)}function O(){j||(j=!0,function(){n.template.$ads=u(l,'<div class="artplayer-plugin-ads"></div>'),y=u(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),v=u(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),u(v,d),g=s(".artplayer-plugin-ads-close",f=u(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:P(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${P(e.totalDuration,e.i18n.countdown)}</div></div>`)),m=s(".artplayer-plugin-ads-countdown",f),e.playDuration>=e.totalDuration&&c(g,"display","none"),n.proxy(g,"click",()=>{D&&$()});let r=s(".artplayer-plugin-ads-detail",x=u(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`)),p=s(".artplayer-plugin-ads-muted",x),h=s(".artplayer-plugin-ads-fullscreen",x);if(e.url?n.proxy(r,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):c(r,"display","none"),e.video){let l=u(p,t),a=u(p,i);c(a,"display","none"),e.muted&&(y.muted=!0,c(l,"display","none"),c(a,"display","inline-flex")),n.proxy(p,"click",()=>{y.muted=!y.muted,y.muted?(c(l,"display","none"),c(a,"display","inline-flex")):(c(l,"display","inline-flex"),c(a,"display","none"))})}else c(p,"display","none");let b=u(h,a),w=u(h,o);c(w,"display","none"),n.proxy(h,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(c(b,"display","inline-flex"),c(w,"display","none")):(c(b,"display","none"),c(w,"display","inline-flex"))}),n.proxy(y,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(y,"error",$),n.proxy(y,"loadedmetadata",()=>{k(),y.play(),c(f,"display","flex"),c(x,"display","flex"),c(v,"display","none")})):(k(),c(f,"display","flex"),c(x,"display","flex"),c(v,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?A():k()}))}return n.on("ready",()=>{Line truncated
/*!
* artplayer-plugin-ads.js v2.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,n,l,t,i,a,r,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[t]&&d[t],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function y(n,l){if(!u[n]){if(!e[n]){if(i[n])return i[n];var a="function"==typeof d[t]&&d[t];if(!l&&a)return a(n,!0);if(p)return p(n,!0);if(c&&"string"==typeof n)return c(n);var r=Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}s.resolve=function(l){var t=e[n][1][l];return null!=t?t:l},s.cache={};var o=u[n]=new y.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return u[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:y(n)}}y.isParcelRequire=!0,y.Module=function(e){this.id=e,this.bundle=y,this.require=c,this.exports={}},y.modules=e,y.cache=u,y.parent=p,y.distDir=void 0,y.publicUrl=void 0,y.devServer=void 0,y.i=s,y.register=function(n,l){e[n]=[function(e,n){n.exports=l},{}]},Object.defineProperty(y,"root",{get:function(){return d[t]}}),d[t]=y;for(var f=0;f<n.length;f++)y(n[f]);if(l){var g=y(l);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({ezZng:[function(e,n,l,t){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(l),i.export(l,"default",()=>o);var a=e("bundle-text:./style.less"),r=i.interopDefault(a);function o(e){return n=>{let{version:l,utils:{errorHandle:t}}=n.constructor,i=l.split(".").map(Number);t(i[0]+i[1]/100>=5,`Artplayer.js@${l} is not compatible the artplayerPluginAds@${o.version}. Please update it to version Artplayer.js@5.x.x`);let{template:{$player:a},icons:{volume:r,volumeClose:d,fullscreenOn:p,fullscreenOff:s,loading:u},constructor:{validator:c,utils:{query:y,append:f,setStyle:g}}}=n;e=c({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"},...e},{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});let m=null,v=null,x=null,h=null,b=null,w=null,D=0,j=null,k=!1,P=!1,$=!1;function O(e,n){return n.replace("%s",e)}function A(){k=!0,n.play(),e.video&&m.pause(),g(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function M(){k||(j=setTimeout(()=>{D+=1;let n=e.playDuration-D;n>=1?x.innerHTML=O(n,e.i18n.canBeClosed):(x.innerHTML=e.i18n.close,$||($=!0)),h.innerHTML=O(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?A():M()},1e3))}function T(){k||clearTimeout(j)}function _(){P||(P=!0,function(){n.template.$ads=f(a,'<div class="artplayer-plugin-ads"></div>'),m=f(n.template.$ads,e.video?`<video class="artplayer-plugin-ads-video" src="${e.video}" loop playsInline></video>`:`<div class="artplayer-plugin-ads-html">${e.html}</div>`),w=f(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),f(w,u),x=y(".artplayer-plugin-ads-close",v=f(n.template.$ads,`<div class="artplayer-plugin-ads-timer"><div class="artplayer-plugin-ads-close">${e.playDuration<=0?e.i18n.close:O(e.playDuration,e.i18n.canBeClosed)}</div><div class="artplayer-plugin-ads-countdown">${O(e.totalDuration,e.i18n.countdown)}</div></div>`)),h=y(".artplayer-plugin-ads-countdown",v),e.playDuration>=e.totalDuration&&g(x,"display","none"),n.proxy(x,"click",()=>{$&&A()});let l=y(".artplayer-plugin-ads-detail",b=f(n.template.$ads,`<div class="artplayer-plugin-ads-control"><div class="artplayer-plugin-ads-detail">${e.i18n.detail}</div><div class="artplayer-plugin-ads-muted"></div><div class="artplayer-plugin-ads-fullscreen"></div></div>`)),t=y(".artplayer-plugin-ads-muted",b),i=y(".artplayer-plugin-ads-fullscreen",b);if(e.url?n.proxy(l,"click",()=>{window.open(e.url),n.emit("artplayerPluginAds:click",e)}):g(l,"display","none"),e.video){let l=f(t,r),i=f(t,d);g(i,"display","none"),e.muted&&(m.muted=!0,g(l,"display","none"),g(i,"display","inline-flex")),n.proxy(t,"click",()=>{m.muted=!m.muted,m.muted?(g(l,"display","none"),g(i,"display","inline-flex")):(g(l,"display","inline-flex"),g(i,"display","none"))})}else g(t,"display","none");let o=f(i,p),c=f(i,s);g(c,"display","none"),n.proxy(i,"click",()=>{n.fullscreen=!n.fullscreen,n.fullscreen?(g(o,"display","inline-flex"),g(c,"display","none")):(g(o,"display","none"),g(c,"display","inline-flex"))}),n.proxy(m,"click",()=>{e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(m,"error",A),n.proxy(m,"loadedmetadata",()=>{M(),m.play(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")})):(M(),g(v,"display","flex"),g(b,"display","flex"),g(w,"display","none")),n.proxy(document,"visibilitychange",()=>{document.hidden?T():M()}))}return n.on("ready",()=>{n.once("play",_),n.once("video:playing",_)}),{name:"artpLine truncated
+8 -1
View File
@@ -1 +1,8 @@
/*! * artplayer-plugin-ads.js v2.0.0 * Github:https://github.com/zhw2590582/ArtPlayer * (c) 2017-2024 Harvey Zack * Released under the MIT License. */ !function(e,n,t,r,l){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof i[r]&&i[r],o=a.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(n,t){if(!o[n]){if(!e[n]){var l="function"==typeof i[r]&&i[r];if(!t&&l)return l(n,!0);if(a)return a(n,!0);if(s&&"string"==typeof n)return s(n);var d=Error("Cannot find module '"+n+"'");throw d.code="MODULE_NOT_FOUND",d}c.resolve=function(t){var r=e[n][1][t];return null!=r?r:t},c.cache={};var u=o[n]=new p.Module(n);e[n][0].call(u.exports,c,u,u.exports,this)}return o[n].exports;function c(e){var n=c.resolve(e);return!1===n?{}:p(n)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.exports={}},p.modules=e,p.cache=o,p.parent=a,p.register=function(n,t){e[n]=[function(e,n){n.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return i[r]}}),i[r]=p;for(var d=0;d<n.length;d++)p(n[d]);if(t){var u=p(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define(function(){return u})}}({"69VIU":[function(e,n,t){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(t),r.export(t,"default",function(){return o});var l=e("@swc/helpers/_/_object_spread"),i=e("bundle-text:./style.less"),a=r.interopDefault(i);function o(e){return function(n){r=(t=n.constructor).version,(0,t.utils.errorHandle)((i=r.split(".").map(Number))[0]+i[1]/100>=5,"Artplayer.js@".concat(r," is not compatible the artplayerPluginAds@").concat(o.version,". Please update it to version Artplayer.js@5.x.x"));var t,r,i,a=n.template.$player,s=n.icons,p=s.volume,d=s.volumeClose,u=s.fullscreenOn,c=s.fullscreenOff,f=s.loading,y=n.constructor,g=y.validator,m=y.utils,v=m.query,h=m.append,x=m.setStyle;e=g((0,l._)({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"}},e),{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});var b=null,j=null,w=null,_=null,D=null,O=null,P=0,k=null,A=!1,I=!1,M=!1;function C(e,n){return n.replace("%s",e)}function L(){A=!0,n.play(),e.video&&b.pause(),x(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function T(){A||(k=setTimeout(function(){P+=1;var n=e.playDuration-P;n>=1?w.innerHTML=C(n,e.i18n.canBeClosed):(w.innerHTML=e.i18n.close,M||(M=!0)),_.innerHTML=C(e.totalDuration-P,e.i18n.countdown),P>=e.totalDuration?L():T()},1e3))}function F(){A||clearTimeout(k)}function U(){I||(I=!0,function(){n.template.$ads=h(a,'<div class="artplayer-plugin-ads"></div>'),b=h(n.template.$ads,e.video?'<video class="artplayer-plugin-ads-video" src="'.concat(e.video,'" loop playsInline></video>'):'<div class="artplayer-plugin-ads-html">'.concat(e.html,"</div>")),O=h(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),h(O,f),w=v(".artplayer-plugin-ads-close",j=h(n.template.$ads,'<div class="artplayer-plugin-ads-timer">\n<div class="artplayer-plugin-ads-close">'.concat(e.playDuration<=0?e.i18n.close:C(e.playDuration,e.i18n.canBeClosed),'</div>\n<div class="artplayer-plugin-ads-countdown">').concat(C(e.totalDuration,e.i18n.countdown),"</div>\n</div>"))),_=v(".artplayer-plugin-ads-countdown",j),e.playDuration>=e.totalDuration&&x(w,"display","none"),n.proxy(w,"click",function(){M&&L()});var t=v(".artplayer-plugin-ads-detail",D=h(n.template.$ads,'<div class="artplayer-plugin-ads-control">\n<div class="artplayer-plugin-ads-detail">'.concat(e.i18n.detail,'</div>\n<div class="artplayer-plugin-ads-muted"></div>\n<div class="artplayer-plugin-ads-fullscreen"></div>\n</div>'))),r=v(".artplayer-plugin-ads-muted",D),l=v(".artplayer-plugin-ads-fullscreen",D);if(e.url?n.proxy(t,"click",function(){window.open(e.url),n.emit("artplayerPluginAds:click",e)}):x(t,"display","none"),e.video){var i=h(r,p),o=h(r,d);x(o,"display","none"),e.muted&&(b.muted=!0,x(i,"display","none"),x(o,"display","inline-flex")),n.proxy(r,"click",function(){b.muted=!b.muted,b.muted?(x(i,"display","none"),x(o,"display","inline-flex")):(x(i,"display","inline-flex"),x(o,"display","none"))})}else x(r,"display","none");var s=h(l,u),y=h(l,c);x(y,"display","none"),n.proxy(l,"click",function(){n.fullscreen=!n.fullscreen,n.fullscreen?(x(s,"display","inline-flex"),x(y,"display","none")):(x(s,"display","none"),x(y,"display","inline-flex"))}),n.proxy(b,"click",function(){e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(b,"error",L),n.proxy(b,"loadedmetadata",function(){T(),b.play(),x(j,"display","flex"),x(D,"display","Line truncated
/*!
* artplayer-plugin-ads.js v2.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,n,t,l,i,r,a,o){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof d[l]&&d[l],s=u.i||{},p=u.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(n,t){if(!p[n]){if(!e[n]){if(i[n])return i[n];var r="function"==typeof d[l]&&d[l];if(!t&&r)return r(n,!0);if(u)return u(n,!0);if(c&&"string"==typeof n)return c(n);var a=Error("Cannot find module '"+n+"'");throw a.code="MODULE_NOT_FOUND",a}s.resolve=function(t){var l=e[n][1][t];return null!=l?l:t},s.cache={};var o=p[n]=new f.Module(n);e[n][0].call(o.exports,s,o,o.exports,d)}return p[n].exports;function s(e){var n=s.resolve(e);return!1===n?{}:f(n)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=p,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(n,t){e[n]=[function(e,n){n.exports=t},{}]},Object.defineProperty(f,"root",{get:function(){return d[l]}}),d[l]=f;for(var y=0;y<n.length;y++)f(n[y]);if(t){var g=f(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"1qHWP":[function(e,n,t,l){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(t),i.export(t,"default",function(){return d});var r=e("@swc/helpers/cjs/_object_spread.cjs"),a=e("bundle-text:./style.less"),o=i.interopDefault(a);function d(e){return function(n){l=(t=n.constructor).version,(0,t.utils.errorHandle)((i=l.split(".").map(Number))[0]+i[1]/100>=5,"Artplayer.js@".concat(l," is not compatible the artplayerPluginAds@").concat(d.version,". Please update it to version Artplayer.js@5.x.x"));var t,l,i,a=n.template.$player,o=n.icons,u=o.volume,s=o.volumeClose,p=o.fullscreenOn,c=o.fullscreenOff,f=o.loading,y=n.constructor,g=y.validator,m=y.utils,v=m.query,b=m.append,x=m.setStyle;e=g((0,r._)({html:"",video:"",url:"",playDuration:5,totalDuration:10,muted:!1,i18n:{close:"关闭广告",countdown:"%s秒",detail:"查看详情",canBeClosed:"%s秒后可关闭广告"}},e),{html:"?string",video:"?string",url:"?string",playDuration:"number",totalDuration:"number",muted:"?boolean",i18n:{close:"string",countdown:"string",detail:"string",canBeClosed:"string"}});var h=null,w=null,j=null,O=null,P=null,k=null,D=0,_=null,M=!1,q=!1,A=!1;function C(e,n){return n.replace("%s",e)}function E(){M=!0,n.play(),e.video&&h.pause(),x(n.template.$ads,"display","none"),n.emit("artplayerPluginAds:skip",e)}function T(){M||(_=setTimeout(function(){D+=1;var n=e.playDuration-D;n>=1?j.innerHTML=C(n,e.i18n.canBeClosed):(j.innerHTML=e.i18n.close,A||(A=!0)),O.innerHTML=C(e.totalDuration-D,e.i18n.countdown),D>=e.totalDuration?E():T()},1e3))}function H(){M||clearTimeout(_)}function $(){q||(q=!0,function(){n.template.$ads=b(a,'<div class="artplayer-plugin-ads"></div>'),h=b(n.template.$ads,e.video?'<video class="artplayer-plugin-ads-video" src="'.concat(e.video,'" loop playsInline></video>'):'<div class="artplayer-plugin-ads-html">'.concat(e.html,"</div>")),k=b(n.template.$ads,'<div class="artplayer-plugin-ads-loading"></div>'),b(k,f),j=v(".artplayer-plugin-ads-close",w=b(n.template.$ads,'<div class="artplayer-plugin-ads-timer">\n<div class="artplayer-plugin-ads-close">'.concat(e.playDuration<=0?e.i18n.close:C(e.playDuration,e.i18n.canBeClosed),'</div>\n<div class="artplayer-plugin-ads-countdown">').concat(C(e.totalDuration,e.i18n.countdown),"</div>\n</div>"))),O=v(".artplayer-plugin-ads-countdown",w),e.playDuration>=e.totalDuration&&x(j,"display","none"),n.proxy(j,"click",function(){A&&E()});var t=v(".artplayer-plugin-ads-detail",P=b(n.template.$ads,'<div class="artplayer-plugin-ads-control">\n<div class="artplayer-plugin-ads-detail">'.concat(e.i18n.detail,'</div>\n<div class="artplayer-plugin-ads-muted"></div>\n<div class="artplayer-plugin-ads-fullscreen"></div>\n</div>'))),l=v(".artplayer-plugin-ads-muted",P),i=v(".artplayer-plugin-ads-fullscreen",P);if(e.url?n.proxy(t,"click",function(){window.open(e.url),n.emit("artplayerPluginAds:click",e)}):x(t,"display","none"),e.video){var r=b(l,u),o=b(l,s);x(o,"display","none"),e.muted&&(h.muted=!0,x(r,"display","none"),x(o,"display","inline-flex")),n.proxy(l,"click",function(){h.muted=!h.muted,h.muted?(x(r,"display","none"),x(o,"display","inline-flex")):(x(r,"display","inline-flex"),x(o,"display","none"))})}else x(l,"display","none");var d=b(i,p),y=b(i,c);x(y,"display","none"),n.proxy(i,"click",function(){n.fullscreen=!n.fullscreen,n.fullscreen?(x(d,"display","inline-flex"),x(y,"display","none")):(x(d,"display","none"),x(y,"display","inline-flex"))}),n.proxy(h,"click",function(){e.url&&window.open(e.url),n.emit("artplayerPluginAds:click",e)})}(),n.pause(),e.video?(n.proxy(h,"error",E),n.proxy(h,"loadedmetadata",function(){T(),h.play(),x(w,"display","flex"),x(P,"display","flex"),x(k,"display","none")})):(TLine truncated
@@ -0,0 +1,9 @@
/*!
* artplayer-plugin-ambilight.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,r,t,n,o,i,l,u){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(s&&"string"==typeof r)return s(r);var l=Error("Cannot find module '"+r+"'");throw l.code="MODULE_NOT_FOUND",l}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var u=c[r]=new p.Module(r);e[r][0].call(u.exports,d,u,u.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=a,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var m=0;m<r.length;m++)p(r[m]);if(t){var g=p(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"9P7rs":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e={}){return r=>{var t,n,o,i,l,u,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:s}=r.constructor.utils,{blur:p="50px",opacity:m=.5,frequency:g=10,duration:y=.3}=e,h=d("div"),b=((t=h).innerHTML=Array.from({length:9}).fill("<div></div>").join(""),Array.from(t.children));n=h,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),s(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=b,l=p,u=m,f=y,i.forEach(e=>{s(e,{opacity:u,filter:`blur(${l})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let l=0;return function o(){let u=performance.now();if(u-l<1e3/n||!r.playing){w=requestAnimationFrame(o);return}l=u;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[l,u,f]=i.getImageData(0,0,1,1).data;return`rgb(${l}, ${u}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,b,g),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["9P7rs"],"9P7rs","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("9P7rs");export{e as default};
//# sourceMappingURL=artplayer-plugin-ambilight.esm.js.map
@@ -0,0 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCAe,SAAS,EAAyB,EAAS,CAAC,CAAC,EAC1D,OAAO,AAAC,QAqCmB,EAKD,EAAY,EAeZ,EAAW,EAAM,EAAS,EAxDlD,GAAM,CAAE,OAAA,CAAM,CAAE,CAAG,EAAI,QAAQ,CACzB,CAAE,cAAA,CAAa,CAAE,SAAA,CAAQ,CAAE,UAAA,CAAS,CAAE,CAAG,EAAI,WAAW,CAAC,KAAK,CAC9D,CAAE,KAAA,EAAO,MAAM,CAAE,QAAA,EAAU,EAAG,CAAE,UAAA,EAAY,EAAE,CAAE,SAAA,EAAW,EAAG,CAAE,CAAG,EAEnE,EAAa,EAAc,OAC3B,GAgCJ,CADuB,EA/BS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","sources":["<anon>","packages/artplayer-plugin-ambilight/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof Line truncated
@@ -0,0 +1,8 @@
/*!
* artplayer-plugin-ambilight.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,r,t,n,o,i,u,l){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof f[n]&&f[n],d=a.i||{},c=a.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!c[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(a)return a(r,!0);if(s&&"string"==typeof r)return s(r);var u=Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}d.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},d.cache={};var l=c[r]=new p.Module(r);e[r][0].call(l.exports,d,l,l.exports,f)}return c[r].exports;function d(e){var r=d.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=a,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=d,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var m=0;m<r.length;m++)p(r[m]);if(t){var g=p(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"2PWBI":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e={}){return r=>{var t,n,o,i,u,l,f;let{$video:a}=r.template,{createElement:d,addClass:c,setStyles:s}=r.constructor.utils,{blur:p="50px",opacity:m=.5,frequency:g=10,duration:y=.3}=e,h=d("div"),b=((t=h).innerHTML=Array.from({length:9}).fill("<div></div>").join(""),Array.from(t.children));n=h,o=a,c(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),s(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),i=b,u=p,l=m,f=y,i.forEach(e=>{s(e,{opacity:l,filter:`blur(${u})`,transition:`background-color ${f}s ease`})});let v=function(e,t,n){let o=d("canvas"),i=o.getContext("2d");o.width=3,o.height=3;let u=0;return function o(){let l=performance.now();if(l-u<1e3/n||!r.playing){w=requestAnimationFrame(o);return}u=l;let f=e.videoWidth/3,a=e.videoHeight/3,d=[[0,0],[f,0],[2*f,0],[0,a],[f,a],[2*f,a],[0,2*a],[f,2*a],[2*f,2*a]].map(([r,t])=>(function(r,t,n,o){i.drawImage(e,r,t,n,o,0,0,1,1);let[u,l,f]=i.getImageData(0,0,1,1).data;return`rgb(${u}, ${l}, ${f})`})(r,t,f,a));t.forEach((e,r)=>{e.style.backgroundColor=d[r]}),w=requestAnimationFrame(o)}}(a,b,g),w=null;function x(){w||v()}function j(){w&&(cancelAnimationFrame(w),w=null)}return r.on("ready",x),r.on("destroy",j),{name:"artplayerPluginAmbilight",start:x,stop:j}}}o.defineInteropFlag(t),o.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAmbilight=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(r,t)||Object.defineProperty(r,t,{enumerable:!0,get:function(){return e[t]}})}),r},t.export=function(e,r,t){Object.defineProperty(e,r,{enumerable:!0,get:t})}},{}]},["2PWBI"],"2PWBI","parcelRequire4dc0",{});
@@ -0,0 +1,8 @@
/*!
* artplayer-plugin-ambilight.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,r,t,n,o,i,a,u){var f="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof f[n]&&f[n],l=c.i||{},d=c.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,t){if(!d[r]){if(!e[r]){if(o[r])return o[r];var i="function"==typeof f[n]&&f[n];if(!t&&i)return i(r,!0);if(c)return c(r,!0);if(s&&"string"==typeof r)return s(r);var a=Error("Cannot find module '"+r+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(t){var n=e[r][1][t];return null!=n?n:t},l.cache={};var u=d[r]=new p.Module(r);e[r][0].call(u.exports,l,u,u.exports,f)}return d[r].exports;function l(e){var r=l.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=d,p.parent=c,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]},Object.defineProperty(p,"root",{get:function(){return f[n]}}),f[n]=p;for(var y=0;y<r.length;y++)p(r[y]);if(t){var m=p(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"8Uro8":[function(e,r,t,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(t),o.export(t,"default",function(){return a});var i=e("@swc/helpers/cjs/_sliced_to_array.cjs");function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(r){var t,n,o,a,u,f,c,l,d,s,p,y,m,v=r.template.$video,h=r.constructor.utils,g=h.createElement,b=h.addClass,_=h.setStyles,j=e.blur,w=e.opacity,x=e.frequency,A=e.duration,S=g("div"),O=((t=S).innerHTML=Array.from({length:9}).fill("<div></div>").join(""),Array.from(t.children));n=S,o=v,b(n,"artplayer-plugin-ambilight"),o.parentNode.insertBefore(n,o),_(n,{position:"absolute",top:0,left:0,zIndex:9,inset:0,display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gridTemplateRows:"1fr 1fr 1fr"}),a=O,u=void 0===j?"50px":j,f=void 0===w?.5:w,c=void 0===A?.3:A,a.forEach(function(e){_(e,{opacity:f,filter:"blur(".concat(u,")"),transition:"background-color ".concat(c,"s ease")})});var M=(l=v,d=O,s=void 0===x?10:x,y=(p=g("canvas")).getContext("2d"),p.width=3,p.height=3,m=0,function e(){var t=performance.now();if(t-m<1e3/s||!r.playing){q=requestAnimationFrame(e);return}m=t;var n=l.videoWidth/3,o=l.videoHeight/3,a=[[0,0],[n,0],[2*n,0],[0,o],[n,o],[2*n,o],[0,2*o],[n,2*o],[2*n,2*o]].map(function(e){var r,t,a,u,f=(0,i._)(e,2),c=f[0],d=f[1];return y.drawImage(l,c,d,n,o,0,0,1,1),t=(r=(0,i._)(y.getImageData(0,0,1,1).data,3))[0],a=r[1],u=r[2],"rgb(".concat(t,", ").concat(a,", ").concat(u,")")});d.forEach(function(e,r){e.style.backgroundColor=a[r]}),q=requestAnimationFrame(e)}),q=null;function I(){q||M()}function P(){q&&(cancelAnimationFrame(q),q=null)}return r.on("ready",I),r.on("destroy",P),{name:"artplayerPluginAmbilight",start:I,stop:P}}}"undefined"!=typeof window&&(window.artplayerPluginAmbilight=a)},{"@swc/helpers/cjs/_sliced_to_array.cjs":"gIQTH","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],gIQTH:[function(e,r,t,n){"use strict";var o=e("d7c30a5ae0c1ab2"),i=e("3aacfce52f67defd"),a=e("f0dae09a1a08b16a"),u=e("83f3648e614d0830");t._=function(e,r){return o._(e)||i._(e,r)||u._(e,r)||a._()}},{d7c30a5ae0c1ab2:"3QSPl","3aacfce52f67defd":"5SSeo",f0dae09a1a08b16a:"heYSj","83f3648e614d0830":"fh7mx"}],"3QSPl":[function(e,r,t,n){"use strict";t._=function(e){if(Array.isArray(e))return e}},{}],"5SSeo":[function(e,r,t,n){"use strict";t._=function(e,r){var t,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var i=[],a=!0,u=!1;try{for(o=o.call(e);!(a=(t=o.next()).done)&&(i.push(t.value),!r||i.length!==r);a=!0);}catch(e){u=!0,n=e}finally{try{a||null==o.return||o.return()}finally{if(u)throw n}}return i}}},{}],heYSj:[function(e,r,t,n){"use strict";t._=function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},{}],fh7mx:[function(e,r,t,n){"use strict";var o=e("3ee51b7dc02d0c44");t._=function(e,r){if(e){if("string"==typeof e)return o._(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o._(e,r)}}},{"3ee51b7dc02d0c44":"1WOAB"}],"1WOAB":[function(e,r,t,n){"use strict";t._=function(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}},{}],qpMMf:[function(e,r,t,n){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,r){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||ObjectLine truncated
@@ -0,0 +1,9 @@
/*!
* artplayer-plugin-asr.js v2.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,a,i,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var l=d[t]=new f.Module(t);e[t][0].call(l.exports,c,l,l.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"40eeC":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var a=e("bundle-text:./style.less"),i=o.interopDefault(a);function l(e={}){let{length:t=3,interval:r=100,sampleRate:n=16e3,autoHideTimeout:o=1e4,onAudioChunk:a=()=>null}=e;return e=>{let i=!1,l=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,m=null,b=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function h(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,o),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let w=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `;async function x(){return l||"suspended"===(l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n})).state&&await l.resume(),l}async function A(){if(!u&&e.video)try{return u=l.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed:",e)}try{if(m||(m=await U(e.video)),m)return b=l.createMediaStreamSource(m)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function U(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function P(){if(!i)try{await x();let e=await A();if(!e)throw Error("Could not establish audio source");if(!f){let e=(()=>{let e=new Blob([w],{type:"application/javascript"});return URL.createObjectURL(e)})();await l.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=l.createGain()).gain.value=1,(s=new AudioWorkletNode(l,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(l.destination);let t=r/1e3*n;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),o=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),i=function(e,t){let r=e.byteLength,n=new ArrayBuffer(44+r),o=new DataView(n),a=(e,t)=>{for(let r=0;r<t.length;r++)o.setUint8(e+r,t.charCodeAt(r))};return a(0,"RIFF"),o.setUint32(4,36+r,!0),a(8,"WAVE"),a(12,"fmt "),o.setUint32(16,16,!0),o.setUint16(20,1,!0),o.setUint16(22,1,!0),o.setUint32(24,t,!0),o.setUint32(28,2*t,!0),o.setUint16(32,2,!0),o.setUint16(34,16,!0),a(36,"data"),o.setUint32(40,r,!0),new Uint8Array(n).set(new Uint8Array(e),44),n}(o,n),l=await a({pcm:o,wav:i});h(l)},r),i=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await j()}}async function j(){i&&(i=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function M(){await j(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),l&&(await l.close(),l=null),f=!1}return e.on("video:volumechange",()=>{c&&(c.gain.value=e.volume)}),e.on("play",P),e.on("pause",j),e.on("destroy",M),{name:"artplayerPluginAsr",stop:M,hide:v,append:h}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let Line truncated
//# sourceMappingURL=artplayer-plugin-asr.esm.js.map
@@ -0,0 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAmB,EAAS,CAAC,CAAC,EACpD,GAAM,CACJ,OAAA,EAAS,CAAC,CACV,SAAA,EAAW,GAAG,CACd,WAAA,EAAa,IAAK,CAClB,gBAAA,EAAkB,GAAK,CACvB,aAAA,EAAe,IAAM,IAAI,CAC1B,CAAG,EAEJ,OAAO,AAAC,IACN,IAAI,EAAU,CAAA,EACV,EAAW,KACX,EAAa,KACb,EAAe,KACf,EAAW,KACX,EAAe,EAAE,CACjB,EAAQ,KACR,EAAgB,CAAA,EAChB,EAAY,KACZ,EAAc,KACd,EAAoB,KAElB,EAAO,EAAI,MAAM,CAAC,GAAG,CAAC,CAC1B,KAAM,MACN,KAAM,EACR,GAaA,SAAS,IACP,EAAK,KAAK,CAAC,OAAO,CAAG,MACvB,CAEA,SAAS,EAAO,CAAQ,EAClB,AAAoB,UAApB,OAAO,IAEX,aAAa,GACb,EAAY,WAAW,EAAM,GAC7B,EAAK,KAAK,CAAC,OAAO,CAAG,GACrB,EAAK,SAAS,CAAG,AAnBf,AAmBkC,EAjB/B,KAAK,CAAC,sBACN,GAAG,CAAC,AAAA,GAAK,EAAE,IAAI,IACf,MAAM,CAAC,SACP,KAAK,CAAC,CAAC,GAeT,GAAG,CAAC,AAAA,GAAQ,CAAC,0BAA0B,EAAE,EAAK,MAAM,CAAC,EACrD,IAAI,CAAC,IACV,CAEA,IAAM,EAAwB;A;A;A;A;A;A;A;A;A;A;AAW1B,QAAA,CAAC,CAgDL,eAAe,WACT,GAGA,AAAmB,cAAnB,AADJ,CAAA,EAAW,GAAK,CAAA,OAAO,YAAY,EAAI,OAAO,kBAAkB,AAAlB,EAAoB,CAAE,WAAA,CAAW,EAAA,EAClE,KAAK,EAChB,MAAM,EAAS,MAAM,GAHd,CAKX,CAEA,eAAe,IACb,GAAI,CAAC,GAAc,EAAI,KAAK,CAC1B,GAAI,CAEF,OADA,EAAa,EAAS,wBAAwB,CAAC,EAAI,KAAK,CAE1D,CACA,MAAO,EAAK,CACV,QAAQ,IAAI,CAAC,iDAAkD,EACjE,CAGF,GAAI,CAIF,GAHI,AAAC,GACH,CAAA,EAAc,MAAM,EAAsB,EAAI,KAAK,CAAA,EAEjD,EAEF,OADA,EAAoB,EAAS,uBAAuB,CAAC,EAGzD,CACA,MAAO,EAAK,CACV,QAAQ,IAAI,CAAC,oDAAqD,EACpE,CAEA,OAAO,IACT,CAEA,eAAe,EAAsB,CAAY,EAC/C,GAAI,CACF,GAAI,EAAa,aAAa,CAC5B,OAAO,EAAa,aAAa,GACnC,GAAI,EAAa,gBAAgB,CAC/B,OAAO,EAAa,gBAAgB,GAEtC,OADA,QAAQ,IAAI,CAAC,oDACN,IACT,CACA,MAAO,EAAK,CAEV,OADA,QAAQ,IAAI,CAAC,+CAAgD,GACtD,IACT,CACF,CAEA,eAAe,IACb,IAAI,EAGJ,GAAI,CACF,MAAM,IACN,IAAM,EAAc,MAAM,IAC1B,GAAI,CAAC,EACH,MAAM,AAAI,MAAM,oCAElB,GAAI,CAAC,EAAe,CAClB,IAAM,EAAU,AA5GO,CAAA,KAC3B,IAAM,EAAO,IAAI,KAAK,CAAC,EAAsB,CAAE,CAAE,KAAM,wBAAyB,GAChF,OAAO,IAAI,eAAe,CAAC,EAC7B,CAAA,GA0GM,OAAM,EAAS,YAAY,CAAC,SAAS,CAAC,GACtC,IAAI,eAAe,CAAC,GACpB,EAAgB,CAAA,CAClB,CAGA,AADA,CAAA,EAAW,EAAS,UAAU,EAA9B,EACS,IAAI,CAAC,KAAK,CAAG,EAEtB,AADA,CAAA,EAAe,IAAI,iBAAiB,EAAU,qBAA9C,EACa,IAAI,CAAC,SAAS,CAAG,AAAC,IAC7B,EAAa,IAAI,CAAC,IAAI,aAAa,EAAM,IAAI,EAC/C,EACA,EAAY,OAAO,CAAC,GACpB,EAAY,OAAO,CAAC,GACpB,EAAS,OAAO,CAAC,EAAS,WAAW,EAErC,IAAM,EAAgB,AAAc,EAAW,IAAzB,EACtB,EAAQ,YAAY,UAClB,GAAI,AAAwB,IAAxB,EAAa,MAAM,CACrB,OAEF,IAAI,EAAc,IAAI,aAAa,GACnC,KAAO,EAAY,MAAM,CAAG,GAAiB,EAAa,MAAM,EAAE,CAChE,IAAM,EAAO,EAAa,KAAK,GACzB,EAAM,IAAI,aAAa,EAAY,MAAM,CAAG,EAAK,MAAM,EAC7D,EAAI,GAAG,CAAC,EAAa,GACrB,EAAI,GAAG,CAAC,EAAM,EAAY,MAAM,EAChC,EAAc,CAChB,CAEA,GAAI,EAAY,MAAM,CAAG,EACvB,OAEF,IAAM,EAAc,EAAY,KAAK,CAAC,EAAG,GACnC,EAAM,AAzIlB,SAAyB,CAAY,EACnC,IAAM,EAAM,EAAa,MAAM,CACzB,EAAS,IAAI,YAAY,AAAM,EAAN,GACzB,EAAO,IAAI,SAAS,GAC1B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IAAK,CAC5B,IAAM,EAAI,KAAK,GAAG,CAAC,GAAI,KAAK,GAAG,CAAC,EAAG,CAAY,CAAC,EAAE,GAClD,EAAK,QAAQ,CAAC,AAAI,EAAJ,EAAO,EAAI,EAAI,AAAI,MAAJ,EAAa,AAAI,MAAJ,EAAY,CAAA,EACxD,CACA,OAAO,CACT,EAgIkC,GACtB,EAAM,AA/HlB,SAAkB,CAAS,CAAE,CAAU,EACrC,IAAM,EAAY,EAAU,UAAU,CAChC,EAAY,IAAI,YAAY,GAAK,GACjC,EAAO,IAAI,SAAS,GAEpB,EAAc,CAAC,EAAQ,KAC3B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,MAAM,CAAE,IAC9B,EAAK,QAAQ,CAAC,EAAS,EAAG,EAAI,UAAU,CAAC,GAE7C,EAkBA,OAhBA,EAAY,EAAG,QACf,EAAK,SAAS,CAAC,EAAG,GAAK,EAAW,CAAA,GAClC,EAAY,EAAG,QACf,EAAY,GAAI,QAChB,EAAK,SAAS,CAAC,GAAI,GAAI,CAAA,GACvB,EAAK,SAAS,CAAC,GAAI,EAAG,CAAA,GACtB,EAAK,SAAS,CAAC,GAAI,EAAG,CAAA,GACtB,EAAK,SAAS,CAAC,GAAI,EAAY,CAAA,GAC/B,EAAK,SAAS,CAAC,GAAI,AAAa,EAAb,EAAgB,CAAA,GACnC,EAAK,SAAS,CAAC,GAAI,EAAG,CAAA,GACtB,EAAK,SAAS,CAAC,GAAI,GAAI,CAAA,GACvB,EAAY,GAAI,QAChB,EAAK,SAAS,CAAC,GAAI,EAAW,CAAA,GAE9B,IAAI,WAAW,GAAW,GAAG,CAAC,IAAI,WAAW,GAAY,IAElD,CACT,EAmG2B,EAAK,GACpB,EAAW,MAAM,EAAa,CAAE,IAAA,EAAK,IAAA,CAAI,GAC/C,EAAO,EACT,EAAG,GAEH,EAAU,CAAA,CACZ,CACA,MAAO,EAAK,CACV,QAAQ,KAAK,CAAC,8CAA+C,GAC7D,MAAM,GACR,CACF,CAEA,eAAe,IACR,IAEL,EAAU,CAAA,EAEV,cAAc,GACd,EAAQ,KAEJ,IACF,EAAa,UAAU,GACvB,EAAa,IAAI,CAAC,SAAS,CAAG,KAC9B,EAAe,MAGb,IACF,EAAS,UAAU,GACnB,EAAW,MAGb,EAAe,EAAE,CACnB,CAEA,eAAe,IACb,MAAM,IAEF,IACF,EAAkB,UAAU,GAC5B,EAAoB,MAGlB,IACF,EAAW,UAAU,GACrB,EAAa,MAGX,IACF,EAAY,SAAS,GAAG,OAAO,CAAC,AAAA,GAAS,EAAM,IAAI,IACnD,EAAc,MAGZ,IACF,MAAM,EAAS,KAAK,GACpB,EAAW,MAGb,EAAgB,CAAA,CAClB,CAYA,OAVA,EAAI,EAAE,CAAC,qBAAsB,KACvB,GACF,CAAA,EAAS,IAAI,CAAC,KAAK,CALine truncated
+8
View File
@@ -0,0 +1,8 @@
/*!
* artplayer-plugin-asr.js v2.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,a,i,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var l=d[t]=new f.Module(t);e[t][0].call(l.exports,c,l,l.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"1gnQM":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var a=e("bundle-text:./style.less"),i=o.interopDefault(a);function l(e={}){let{length:t=3,interval:r=100,sampleRate:n=16e3,autoHideTimeout:o=1e4,onAudioChunk:a=()=>null}=e;return e=>{let i=!1,l=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,m=null,b=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function h(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,o),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let w=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `;async function x(){return l||"suspended"===(l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n})).state&&await l.resume(),l}async function A(){if(!u&&e.video)try{return u=l.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed:",e)}try{if(m||(m=await U(e.video)),m)return b=l.createMediaStreamSource(m)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function U(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function M(){if(!i)try{await x();let e=await A();if(!e)throw Error("Could not establish audio source");if(!f){let e=(()=>{let e=new Blob([w],{type:"application/javascript"});return URL.createObjectURL(e)})();await l.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=l.createGain()).gain.value=1,(s=new AudioWorkletNode(l,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(l.destination);let t=r/1e3*n;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),o=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),i=function(e,t){let r=e.byteLength,n=new ArrayBuffer(44+r),o=new DataView(n),a=(e,t)=>{for(let r=0;r<t.length;r++)o.setUint8(e+r,t.charCodeAt(r))};return a(0,"RIFF"),o.setUint32(4,36+r,!0),a(8,"WAVE"),a(12,"fmt "),o.setUint32(16,16,!0),o.setUint16(20,1,!0),o.setUint16(22,1,!0),o.setUint32(24,t,!0),o.setUint32(28,2*t,!0),o.setUint16(32,2,!0),o.setUint16(34,16,!0),a(36,"data"),o.setUint32(40,r,!0),new Uint8Array(n).set(new Uint8Array(e),44),n}(o,n),l=await a({pcm:o,wav:i});h(l)},r),i=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await P()}}async function P(){i&&(i=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function j(){await P(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),l&&(await l.close(),l=null),f=!1}return e.on("video:volumechange",()=>{c&&(c.gain.value=e.volume)}),e.on("play",M),e.on("pause",P),e.on("destroy",j),{name:"artplayerPluginAsr",stop:j,hide:v,append:h}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let Line truncated
@@ -0,0 +1,8 @@
/*!
* artplayer-plugin-asr.js v2.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,i,a,u){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof c[n]&&c[n],l=s.i||{},f=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof c[n]&&c[n];if(!r&&i)return i(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var u=f[t]=new d.Module(t);e[t][0].call(u.exports,l,u,u.exports,c)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var _=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=_:"function"==typeof define&&define.amd&&define(function(){return _})}}({"98QZN":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs"),u=e("bundle-text:./style.less"),c=o.interopDefault(u);function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.length,r=void 0===t?3:t,n=e.interval,o=void 0===n?100:n,u=e.sampleRate,c=void 0===u?16e3:u,s=e.autoHideTimeout,l=void 0===s?1e4:s,f=e.onAudioChunk,p=void 0===f?function(){return null}:f;return function(e){var t=!1,n=null,u=null,s=null,f=null,d=[],y=null,_=!1,h=null,v=null,b=null,m=e.layers.add({name:"asr",html:""});function w(){m.style.display="none"}function g(e){"string"==typeof e&&(clearTimeout(h),h=setTimeout(w,l),m.style.display="",m.innerHTML=e.split(RegExp("(?<=[、。!?!?.])\\s*","u")).map(function(e){return e.trim()}).filter(Boolean).slice(-r).map(function(e){return'<div class="art-asr-line">'.concat(e,"</div>")}).join(""))}var x=function(){var e=new Blob(["\n class RecorderProcessor extends AudioWorkletProcessor {\n process(inputs) {\n const input = inputs[0];\n if (input && input[0]) {\n this.port.postMessage(input[0]);\n }\n return true;\n }\n }\n registerProcessor('recorder-processor', RecorderProcessor);\n "],{type:"application/javascript"});return URL.createObjectURL(e)};function j(){return(0,i._)(function(){return(0,a._)(this,function(e){return t&&(t=!1,clearInterval(y),y=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),f&&(f.disconnect(),f=null),d=[]),[2]})})()}function O(){return(0,i._)(function(){return(0,a._)(this,function(e){switch(e.label){case 0:return[4,j()];case 1:if(e.sent(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),v&&(v.getTracks().forEach(function(e){return e.stop()}),v=null),!n)return[3,3];return[4,n.close()];case 2:e.sent(),n=null,e.label=3;case 3:return _=!1,[2]}})})()}return e.on("video:volumechange",function(){f&&(f.gain.value=e.volume)}),e.on("play",function(){return(0,i._)(function(){var r,l,h;return(0,a._)(this,function(m){switch(m.label){case 0:if(t)return[2];m.label=1;case 1:return m.trys.push([1,6,,8]),[4,(0,i._)(function(){return(0,a._)(this,function(e){switch(e.label){case 0:if(n)return[2,n];if("suspended"!==(n=new(window.AudioContext||window.webkitAudioContext)({sampleRate:c})).state)return[3,2];return[4,n.resume()];case 1:e.sent(),e.label=2;case 2:return[2,n]}})})()];case 2:return m.sent(),[4,(0,i._)(function(){return(0,a._)(this,function(t){switch(t.label){case 0:if(!u&&e.video)try{return u=n.createMediaElementSource(e.video),[2,u]}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed:",e)}t.label=1;case 1:var r;if(t.trys.push([1,4,,5]),v)return[3,3];return[4,(r=e.video,(0,i._)(function(){return(0,a._)(this,function(e){try{if(r.captureStream)return[2,r.captureStream()];if(r.mozCaptureStream)return[2,r.mozCaptureStream()];return console.warn("[artplayerPluginAsr] captureStream not supported"),[2,null]}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),[2,null]}})})())];case 2:v=t.sent(),t.label=3;case 3:if(v)return[2,b=n.createMediaStreamSource(v)];return[3,5];case 4:return console.warn("[artplayerPluginAsr] MediaStream fallback failed:",t.sent()),[3,5];case 5:return[2,null]}})})()];case 3:if(!(r=m.sent()))throw Error("Could not establish audio source");if(_)return[3,5];return l=x(),[4,n.audioWorklet.addModule(l)];case 4:m.sent(),URL.revokeObjectURL(l),_=!0,m.label=5;case 5:return(f=n.createGain()).gain.value=1,(s=new AudioWorkletNode(n,"recorder-processor")).port.onmessage=function(e){d.push(new Float32Array(e.data))},r.connect(s),r.connect(f),f.conLine truncated
@@ -0,0 +1,9 @@
/*!
* artplayer-plugin-auto-thumbnail.js v1.0.1
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,o,r,u,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var u="function"==typeof d[o]&&d[o];if(!n&&u)return u(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m<t.length;m++)p(t[m]);if(n){var h=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({guSFC:[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");function u(e){return async t=>(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,u=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,u=document.createElement("canvas"),i=u.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);u.width=10*t,u.height=l*Math.ceil(n/10);let d=null;!function f(a){u.toBlob(e=>{URL.revokeObjectURL(d),o({url:d=URL.createObjectURL(e),height:l})},"image/jpeg"),a>=n||(r.currentTime=e*a/n,r.onseeked=()=>{i.drawImage(r,a%10*t,Math.floor(a/10)*l,t,l),f(a+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:u}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>u),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=u)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["guSFC"],"guSFC","parcelRequire4dc0",{});let{default:e}=parcelRequire4dc0("guSFC");export{e as default};
//# sourceMappingURL=artplayer-plugin-auto-thumbnail.esm.js.map
@@ -0,0 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCyCe,SAAS,EAA6B,CAAM,EACzD,OAAO,MAAO,IACZ,EAAI,EAAE,CAAC,uBAAwB,KAC7B,IAAM,EAAM,EAAO,GAAG,EAAI,EAAI,MAAM,CAAC,GAAG,CAClC,EAAQ,EAAO,KAAK,EAAI,IACxB,EAAS,EAAO,MAAM,EAAI,IAC1B,EAAQ,EAAO,KAAK,EAAI,GAC9B,AAhDN,SAAgB,CAAE,IAAA,CAAG,CAAE,MAAA,CAAK,CAAE,OAAA,CAAM,CAAE,CAAE,CAAQ,EAC9C,IAAM,EAAQ,SAAS,aAAa,CAAC,QACrC,CAAA,EAAM,WAAW,CAAG,YACpB,EAAM,GAAG,CAAG,EAEZ,EAAM,gBAAgB,CAAG,KACvB,IAAM,EAAW,EAAM,QAAQ,CACzB,EAAS,SAAS,aAAa,CAAC,UAChC,EAAM,EAAO,UAAU,CAAC,MACxB,EAAS,KAAK,KAAK,CAAE,EAAQ,EAAM,WAAW,CAAI,EAAM,UAAU,CAExE,CAAA,EAAO,KAAK,CAAG,AAAQ,GAAR,EACf,EAAO,MAAM,CAAG,EAAS,KAAK,IAAI,CAAC,EAAS,IAE5C,IAAI,EAAU,MAuBd,AArBA,SAAS,EAAY,CAAK,EACxB,EAAO,MAAM,CAAC,AAAC,IACb,IAAI,eAAe,CAAC,GAGpB,EAAS,CACP,IAHF,EAAU,IAAI,eAAe,CAAC,GAI5B,OAAA,CACF,EACF,EAAG,cAEC,GAAS,IAEb,EAAM,WAAW,CAAG,EAAY,EAAS,EAEzC,EAAM,QAAQ,CAAG,KACf,EAAI,SAAS,CAAC,EAAO,EAAS,GAAM,EAAO,KAAK,KAAK,CAAC,EAAQ,IAAM,EAAQ,EAAO,GACnF,EAAY,EAAQ,EACtB,EACF,EAEY,EACd,CACF,EASa,CAAE,IAAA,EAAK,MAAA,EAAO,OAAA,CAAO,EAAG,AAAC,IAC9B,EAAI,UAAU,CAAG,CACf,GAAG,CAAM,CACT,OAAQ,GACR,OAAA,EACA,MAAA,EACA,MAAA,CACF,CACF,EACF,GAEO,CACL,KAAM,8BACR,EAEJ,C,E,iB,C,GAtBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAwBpB,AAAkB,aAAlB,OAAO,QACT,CAAA,OAAO,4BAA4B,CAAG,CADxC,C,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,ECjEA,EAAQ,cAAc,CAAG,SAAU,CAAC,EAClC,OAAO,GAAK,EAAE,UAAU,CAAG,EAAI,CAAC,QAAS,CAAC,CAC5C,EAEA,EAAQ,iBAAiB,CAAG,SAAU,CAAC,EACrC,OAAO,cAAc,CAAC,EAAG,aAAc,CAAC,MAAO,CAAA,CAAI,EACrD,EAEA,EAAQ,SAAS,CAAG,SAAU,CAAM,CAAE,CAAI,EAkBxC,OAjBA,OAAO,IAAI,CAAC,GAAQ,OAAO,CAAC,SAAU,CAAG,EAE7B,YAAR,GACA,AAAQ,eAAR,GACA,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAM,IAK7C,OAAO,cAAc,CAAC,EAAM,EAAK,CAC/B,WAAY,CAAA,EACZ,IAAK,WACH,OAAO,CAAM,CAAC,EAAI,AACpB,CACF,EACF,GAEO,CACT,EAEA,EAAQ,MAAM,CAAG,SAAU,CAAI,CAAE,CAAQ,CAAE,CAAG,EAC5C,OAAO,cAAc,CAAC,EAAM,EAAU,CACpC,WAAY,CAAA,EACZ,IAAK,CACP,EACF,C,E,C,E,E,C,Q,C,Q,oB,C,G,G,C,Q,C,C,C,kB,gB,K,O","sources":["<anon>","packages/artplayer-plugin-auto-thumbnail/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequiLine truncated
@@ -0,0 +1,8 @@
/*!
* artplayer-plugin-auto-thumbnail.js v1.0.1
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,n,o,r,i,u,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},f="function"==typeof d[o]&&d[o],a=f.i||{},c=f.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,n){if(!c[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof d[o]&&d[o];if(!n&&i)return i(t,!0);if(f)return f(t,!0);if(s&&"string"==typeof t)return s(t);var u=Error("Cannot find module '"+t+"'");throw u.code="MODULE_NOT_FOUND",u}a.resolve=function(n){var o=e[t][1][n];return null!=o?o:n},a.cache={};var l=c[t]=new p.Module(t);e[t][0].call(l.exports,a,l,l.exports,d)}return c[t].exports;function a(e){var t=a.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=s,this.exports={}},p.modules=e,p.cache=c,p.parent=f,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=a,p.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(p,"root",{get:function(){return d[o]}}),d[o]=p;for(var m=0;m<t.length;m++)p(t[m]);if(n){var h=p(n);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({"6MsoC":[function(e,t,n,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return async t=>(t.on("video:loadedmetadata",()=>{let n=e.url||t.option.url,o=e.width||160,r=e.number||100,i=e.scale||1;!function({url:e,width:t,number:n},o){let r=document.createElement("video");r.crossOrigin="anonymous",r.src=e,r.onloadedmetadata=()=>{let e=r.duration,i=document.createElement("canvas"),u=i.getContext("2d"),l=Math.floor(t*r.videoHeight/r.videoWidth);i.width=10*t,i.height=l*Math.ceil(n/10);let d=null;!function f(a){i.toBlob(e=>{URL.revokeObjectURL(d),o({url:d=URL.createObjectURL(e),height:l})},"image/jpeg"),a>=n||(r.currentTime=e*a/n,r.onseeked=()=>{u.drawImage(r,a%10*t,Math.floor(a/10)*l,t,l),f(a+1)})}(0)}}({url:n,width:o,number:r},e=>{t.thumbnails={...e,column:10,number:r,width:o,scale:i}})}),{name:"artplayerPluginAutoThumbnail"})}r.defineInteropFlag(n),r.export(n,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,t,n,o){n.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},n.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.exportAll=function(e,t){return Object.keys(e).forEach(function(n){"default"===n||"__esModule"===n||Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:function(){return e[n]}})}),t},n.export=function(e,t,n){Object.defineProperty(e,t,{enumerable:!0,get:n})}},{}]},["6MsoC"],"6MsoC","parcelRequire4dc0",{});
@@ -0,0 +1,8 @@
/*!
* artplayer-plugin-auto-thumbnail.js v1.0.1
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,i,c,u){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof a[n]&&a[n],f=s.i||{},l=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!l[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof a[n]&&a[n];if(!r&&i)return i(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var c=Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}f.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},f.cache={};var u=l[t]=new d.Module(t);e[t][0].call(u.exports,f,u,u.exports,a)}return l[t].exports;function f(e){var t=f.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=l,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=f,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return a[n]}}),a[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var _=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=_:"function"==typeof define&&define.amd&&define(function(){return _})}}({"9JZgh":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),c=e("@swc/helpers/cjs/_object_spread.cjs"),u=e("@swc/helpers/cjs/_object_spread_props.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs");function s(e){return function(t){return(0,i._)(function(){return(0,a._)(this,function(r){return t.on("video:loadedmetadata",function(){var r,n,o,i,a,s,f=e.url||t.option.url,l=e.width||160,p=e.number||100,d=e.scale||1;r={url:f,width:l,number:p},n=function(e){t.thumbnails=(0,u._)((0,c._)({},e),{column:10,number:p,width:l,scale:d})},o=r.url,i=r.width,a=r.number,(s=document.createElement("video")).crossOrigin="anonymous",s.src=o,s.onloadedmetadata=function(){var e=s.duration,t=document.createElement("canvas"),r=t.getContext("2d"),o=Math.floor(i*s.videoHeight/s.videoWidth);t.width=10*i,t.height=o*Math.ceil(a/10);var c=null;!function u(f){t.toBlob(function(e){URL.revokeObjectURL(c),n({url:c=URL.createObjectURL(e),height:o})},"image/jpeg"),f>=a||(s.currentTime=e*f/a,s.onseeked=function(){r.drawImage(s,f%10*i,Math.floor(f/10)*o,i,o),u(f+1)})}(0)}}),[2,{name:"artplayerPluginAutoThumbnail"}]})})()}}"undefined"!=typeof window&&(window.artplayerPluginAutoThumbnail=s)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_object_spread.cjs":"kyoEj","@swc/helpers/cjs/_object_spread_props.cjs":"3G1wX","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],cZn0e:[function(e,t,r,n){"use strict";function o(e,t,r,n,o,i,c){try{var u=e[i](c),a=u.value}catch(e){r(e);return}u.done?t(a):Promise.resolve(a).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var c=e.apply(t,r);function u(e){o(c,n,i,u,a,"next",e)}function a(e){o(c,n,i,u,a,"throw",e)}u(void 0)})}}},{}],kyoEj:[function(e,t,r,n){"use strict";var o=e("9f9b8a24218ee51e");r._=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){o._(e,t,r[t])})}return e}},{"9f9b8a24218ee51e":"ltU3W"}],ltU3W:[function(e,t,r,n){"use strict";r._=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},{}],"3G1wX":[function(e,t,r,n){"use strict";r._=function(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}},{}],eltGh:[function(e,t,r,n){"use strict";r._=e("eb260df52bffddd").__generator},{eb260df52bffddd:"6yrAu"}],"6yrAu":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return u}),o.export(r,"__assign",function(){return a}),o.export(r,"__rest",function(){return s}),o.export(r,"__decorate",function(){return f}),o.export(r,"__param",function(){return l}),o.export(r,"__esDecorate",function(){return p}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return y}),o.export(r,"__setFunctionName",function(){return _}),o.export(r,"__metadata",function(){return h}),o.export(r,"__awaiter",function(){return b}),o.export(r,"__generator",function(){return v}),o.Line truncated
@@ -0,0 +1,9 @@
/*!
* artplayer-plugin-chapter.js v1.0.1
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var g=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"1LLzi":[function(e,t,r,a){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",()=>l);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=`<div class="art-chapter"><div class="art-chapter-inner"><div class="art-progress-hover"></div><div class="art-progress-loaded"></div><div class="art-progress-played"></div></div></div>`,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'<div class="art-chapters"></div>'),y=n(h,'<div class="art-chapter-title"></div>');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.textContent=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.textContent="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;r<e.length;r++){let a=e[r],n=e[r+1];if(a.end===1/0&&(a.end=t.duration),"number"!=typeof a.start||"number"!=typeof a.end||"string"!=typeof a.title)throw TypeError("Illegal chapter data type");if(a.start<0||a.end>t.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end<t.duration&&e.push({start:e[e.length-1].end,end:t.duration,title:""});for(let t=0;t<e.length-1;t++)e[t].end!==e[t+1].start&&e.splice(t+1,0,{start:e[t].end,end:e[t+1].start,title:""});c=e.map(e=>{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;o<c.length;o++){let{$chapter:i,$loaded:d,$played:p,$hover:s}=c[o],f={hover:s,loaded:d,played:p}[e];if(!f)return;let h=g.clientWidth*r,v=t.duration*r,b=Number.parseFloat(i.dataset.duration),x=Number.parseFloat(i.dataset.start),w=Number.parseFloat(i.dataset.end);if(v<x&&a(f,"width",0),v>w&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"e5E4m","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],e5E4m:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:Line truncated
//# sourceMappingURL=artplayer-plugin-chapter.esm.js.map
@@ -0,0 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAuB,EAAS,CAAC,CAAC,EACxD,OAAO,AAAC,IACN,GAAM,CAAE,QAAA,CAAO,CAAE,CAAG,EAAI,QAAQ,CAC1B,CAAE,SAAA,CAAQ,CAAE,OAAA,CAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,SAAA,CAAQ,CAAE,SAAA,CAAQ,CAAE,YAAA,CAAW,CAAE,CAAG,EAAI,WAAW,CAAC,KAAK,CAE3F,EAAO;A;A;A;A;A;A;A;AAQT,QAAA,CA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 truncated
@@ -0,0 +1,8 @@
/*!
* artplayer-plugin-chapter.js v1.0.1
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var g=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"3VfEb":[function(e,t,r,a){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",()=>l);var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(e={}){return t=>{let{$player:r}=t.template,{setStyle:a,append:n,clamp:o,query:i,isMobile:l,addClass:d,removeClass:p}=t.constructor.utils,s=`<div class="art-chapter"><div class="art-chapter-inner"><div class="art-progress-hover"></div><div class="art-progress-loaded"></div><div class="art-progress-played"></div></div></div>`,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=n(h,'<div class="art-chapters"></div>'),y=n(h,'<div class="art-chapter-title"></div>');function m({$chapter:e,width:t}){let r=e.dataset.title.trim();if(r){a(y,"display","flex"),y.textContent=r;let e=y.clientWidth;t<=e/2?a(y,"left",0):t>h.clientWidth-e/2?a(y,"left",`${h.clientWidth-e}px`):a(y,"left",`${t-e/2}px`)}else a(y,"display","none")}function v(e=[]){if((c=[],g.textContent="",p(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort((e,t)=>e.start-t.start);for(let r=0;r<e.length;r++){let a=e[r],n=e[r+1];if(a.end===1/0&&(a.end=t.duration),"number"!=typeof a.start||"number"!=typeof a.end||"string"!=typeof a.title)throw TypeError("Illegal chapter data type");if(a.start<0||a.end>t.duration||a.start>=a.end||n&&a.end>n.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end<t.duration&&e.push({start:e[e.length-1].end,end:t.duration,title:""});for(let t=0;t<e.length-1;t++)e[t].end!==e[t+1].start&&e.splice(t+1,0,{start:e[t].end,end:e[t+1].start,title:""});c=e.map(e=>{let r=n(g,s),a=o(e.start,0,t.duration),l=o(e.end,0,t.duration),d=l-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=l,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width=`${100*p}%`,{$chapter:r,$hover:i(".art-progress-hover",r),$loaded:i(".art-progress-loaded",r),$played:i(".art-progress-played",r)}}),d(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",(e,r,n)=>{if(c.length)for(let o=0;o<c.length;o++){let{$chapter:i,$loaded:d,$played:p,$hover:s}=c[o],f={hover:s,loaded:d,played:p}[e];if(!f)return;let h=g.clientWidth*r,v=t.duration*r,b=Number.parseFloat(i.dataset.duration),x=Number.parseFloat(i.dataset.start),w=Number.parseFloat(i.dataset.end);if(v<x&&a(f,"width",0),v>w&&a(f,"width","100%"),v>=x&&v<=w){let t=(v-x)/b;a(f,"width",`${100*t}%`),l?"played"===e&&n&&(m({$chapter:i,width:h}),clearTimeout(u),u=setTimeout(()=>{a(y,"display","none")},500)):"hover"===e&&m({$chapter:i,width:h})}}}),l||t.proxy(f,"mouseleave",()=>{c.length&&a(y,"display","none")}),t.once("video:loadedmetadata",()=>v(e.chapters)),{name:"artplayerPluginChapter",update:({chapters:e})=>v(e)}}}if("undefined"!=typeof document){let e="artplayer-plugin-chapter",t=document.getElementById(e);t||((t=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(t)}):(document.head||document.documentElement).appendChild(t)),t.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"emPWt","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],emPWt:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-inner{background-color:#0000!important;height:100%!important}.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-hover,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-loaded,.artplayer-plugin-chapter .art-control-progress-inner>.art-progress-played{display:Line truncated
@@ -0,0 +1,8 @@
/*!
* artplayer-plugin-chapter.js v1.0.1
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,a,n,o,i,l){var d="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof d[a]&&d[a],s=p.i||{},u=p.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(n[t])return n[t];var o="function"==typeof d[a]&&d[a];if(!r&&o)return o(t,!0);if(p)return p(t,!0);if(c&&"string"==typeof t)return c(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}s.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},s.cache={};var l=u[t]=new f.Module(t);e[t][0].call(l.exports,s,l,l.exports,d)}return u[t].exports;function s(e){var t=s.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=c,this.exports={}},f.modules=e,f.cache=u,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=s,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return d[a]}}),d[a]=f;for(var h=0;h<t.length;h++)f(t[h]);if(r){var g=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"7hySu":[function(e,t,r,a){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",function(){return l});var o=e("bundle-text:./style.less"),i=n.interopDefault(o);function l(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var r=t.template.$player,a=t.constructor.utils,n=a.setStyle,o=a.append,i=a.clamp,l=a.query,d=a.isMobile,p=a.addClass,s=a.removeClass,u=null,c=[],f=t.query(".art-control-progress"),h=t.query(".art-control-progress-inner"),g=o(h,'<div class="art-chapters"></div>'),y=o(h,'<div class="art-chapter-title"></div>');function v(e){var t=e.$chapter,r=e.width,a=t.dataset.title.trim();if(a){n(y,"display","flex"),y.textContent=a;var o=y.clientWidth;r<=o/2?n(y,"left",0):r>h.clientWidth-o/2?n(y,"left","".concat(h.clientWidth-o,"px")):n(y,"left","".concat(r-o/2,"px"))}else n(y,"display","none")}function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if((c=[],g.textContent="",s(r,"artplayer-plugin-chapter"),Array.isArray(e)&&e.length)&&t.duration){e=e.sort(function(e,t){return e.start-t.start});for(var a=0;a<e.length;a++){var n=e[a],d=e[a+1];if(n.end===1/0&&(n.end=t.duration),"number"!=typeof n.start||"number"!=typeof n.end||"string"!=typeof n.title)throw TypeError("Illegal chapter data type");if(n.start<0||n.end>t.duration||n.start>=n.end||d&&n.end>d.start)throw Error("Illegal chapter time point")}e[0].start>0&&e.unshift({start:0,end:e[0].start,title:""}),e[e.length-1].end<t.duration&&e.push({start:e[e.length-1].end,end:t.duration,title:""});for(var u=0;u<e.length-1;u++)e[u].end!==e[u+1].start&&e.splice(u+1,0,{start:e[u].end,end:e[u+1].start,title:""});c=e.map(function(e){var r=o(g,'\n <div class="art-chapter">\n<div class="art-chapter-inner">\n<div class="art-progress-hover"></div>\n<div class="art-progress-loaded"></div>\n<div class="art-progress-played"></div>\n</div>\n</div>\n '),a=i(e.start,0,t.duration),n=i(e.end,0,t.duration),d=n-a,p=d/t.duration;return r.dataset.start=a,r.dataset.end=n,r.dataset.duration=d,r.dataset.title=e.title.trim(),r.style.width="".concat(100*p,"%"),{$chapter:r,$hover:l(".art-progress-hover",r),$loaded:l(".art-progress-loaded",r),$played:l(".art-progress-played",r)}}),p(r,"artplayer-plugin-chapter"),t.emit("setBar","loaded",t.loaded||0)}}return t.on("setBar",function(e,r,a){if(c.length)for(var o=0;o<c.length;o++){var i=c[o],l=i.$chapter,p=i.$loaded,s=i.$played,f={hover:i.$hover,loaded:p,played:s}[e];if(!f)return;var h=g.clientWidth*r,m=t.duration*r,b=Number.parseFloat(l.dataset.duration),x=Number.parseFloat(l.dataset.start),w=Number.parseFloat(l.dataset.end);if(m<x&&n(f,"width",0),m>w&&n(f,"width","100%"),m>=x&&m<=w){var M=(m-x)/b;n(f,"width","".concat(100*M,"%")),d?"played"===e&&a&&(v({$chapter:l,width:h}),clearTimeout(u),u=setTimeout(function(){n(y,"display","none")},500)):"hover"===e&&v({$chapter:l,width:h})}}}),d||t.proxy(f,"mouseleave",function(){c.length&&n(y,"display","none")}),t.once("video:loadedmetadata",function(){return m(e.chapters)}),{name:"artplayerPluginChapter",update:function(e){return m(e.chapters)}}}}if("undefined"!=typeof document){var d="artplayer-plugin-chapter",p=document.getElementById(d);p||((p=document.createElement("style")).id=d,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(p)}):(document.head||document.documentElement).appendChild(p)),p.textContent=i.default}"undefined"!=typeof window&&(window.artplayerPluginChapter=l)},{"bundle-text:./style.less":"fcXWB","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],fcXWB:[function(e,t,r,a){t.exports=".artplayer-plugin-chapter .art-control-progress-innLine truncated
@@ -0,0 +1,9 @@
/*!
* artplayer-plugin-chromecast.js v1.0.1
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,o,n,r,i,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(t,o){if(!u[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof s[n]&&s[n];if(!o&&i)return i(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new p.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:p(t)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=f,this.exports={}},p.modules=e,p.cache=u,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=l,p.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(p,"root",{get:function(){return s[n]}}),s[n]=p;for(var w=0;w<t.length;w++)p(t[w]);if(o){var m=p(o);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({cv67D:[function(e,t,o,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let t=!1,o=null,n=null,r=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}},i=(t,o)=>{let n=e.url||t.option.url,r=new window.chrome.cast.media.MediaInfo(n,e.mimeType||({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[n.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream"),i=new window.chrome.cast.media.LoadRequest(r);o.loadMedia(i).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})};return async a=>(a.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`<i class="art-icon art-icon-cast">${e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>'}</i>`,click:async()=>{if(!t)try{await new Promise((i,a)=>{var c;window.__onGCastApiAvailable=c=>{if(c){let a=window.cast.framework.CastContext.getInstance();a.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),a.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),r("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),r("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),r("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),r("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),r("connected")}}),a.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(c=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise((e,t)=>{let o=document.createElement("script");o.src=c,o.onload=e,o.onerror=t,document.body.appendChild(o)})).catch(a)})}catch(t){throw a.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let c=window.cast.framework.CastContext.getInstance();if(o)i(a,o);else try{let e=await c.requestSession();i(a,e)}catch(t){throw a.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}r.defineInteropFlag(o),r.export(o,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginChromecast=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"5lQoW":[function(e,t,o,n){o.interopDefault=function(e){returnLine truncated
//# sourceMappingURL=artplayer-plugin-chromecast.esm.js.map
@@ -0,0 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kDC6Be,SAAS,EAA0B,CAAM,EAItD,IAAI,EAAoB,CAAA,EACpB,EAAc,KACd,EAAY,KAEV,EAAmB,AAAC,IACxB,IAAM,EAAS,SAAS,aAAa,CAAC,kBACtC,GAAI,EACF,OAAQ,GACN,IAAK,YACH,EAAO,KAAK,CAAC,KAAK,CAAG,MACrB,KACF,KAAK,aACL,IAAK,gBACH,EAAO,KAAK,CAAC,KAAK,CAAG,SACrB,KACF,SAEE,EAAO,KAAK,CAAC,KAAK,CAAG,OAEzB,CAEJ,EA2EM,EAAY,CAAC,EAAK,KACtB,IAAM,EAAM,EAAO,GAAG,EAAI,EAAI,MAAM,CA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","sources":["<anon>","packages/artplayer-plugin-chromecast/src/index.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcLine truncated
+8 -1
View File
@@ -1 +1,8 @@
/*! * artplayer-plugin-chromecast.js v2.0.0 * Github:https://github.com/zhw2590582/ArtPlayer * (c) 2017-2024 Harvey Zack * Released under the MIT License. */ !function(e,o,t,n,i){var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof r[n]&&r[n],a=c.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(o,t){if(!a[o]){if(!e[o]){var i="function"==typeof r[n]&&r[n];if(!t&&i)return i(o,!0);if(c)return c(o,!0);if(s&&"string"==typeof o)return s(o);var l=Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}f.resolve=function(t){var n=e[o][1][t];return null!=n?n:t},f.cache={};var u=a[o]=new d.Module(o);e[o][0].call(u.exports,f,u,u.exports,this)}return a[o].exports;function f(e){var o=f.resolve(e);return!1===o?{}:d(o)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=a,d.parent=c,d.register=function(o,t){e[o]=[function(e,o){o.exports=t},{}]},Object.defineProperty(d,"root",{get:function(){return r[n]}}),r[n]=d;for(var l=0;l<o.length;l++)d(o[l]);if(t){var u=d(t);"object"==typeof exports&&"undefined"!=typeof module?module.exports=u:"function"==typeof define&&define.amd&&define(function(){return u})}}({"3wl5Y":[function(e,o,t){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return window.__onGCastApiAvailable=function(e){e&&window.cast.framework.CastContext.getInstance().setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED})},async o=>{if(!window.chrome||!window.chrome.cast){var t;await (t=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise((e,o)=>{let n=document.createElement("script");n.src=t,n.onload=e,n.onerror=o,document.body.appendChild(n)}))}function n(t){let n=e.url||o.option.url,i=e.mimeType||({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[n.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream",r=new window.chrome.cast.media.MediaInfo(n,i),c=new window.chrome.cast.media.LoadRequest(r);t.loadMedia(c).then(function(){console.log("Media loaded successfully")},function(e){o.notice.show="Error casting media",console.log("Error casting media",e)})}return o.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`<i class="art-icon art-icon-cast">${e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>'}</i>`,click(){let e=window.cast.framework.CastContext.getInstance().getCurrentSession();e?n(e):window.cast.framework.CastContext.getInstance().requestSession().then(function(e){n(e)},function(e){o.notice.show="Error connecting to cast session",console.log("Error connecting to cast session",e)})}}),{name:"artplayerPluginChromecast"}}}n.defineInteropFlag(t),n.export(t,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginChromecast=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],"9pCYc":[function(e,o,t){t.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},t.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},t.exportAll=function(e,o){return Object.keys(e).forEach(function(t){"default"===t||"__esModule"===t||Object.prototype.hasOwnProperty.call(o,t)||Object.defineProperty(o,t,{enumerable:!0,get:function(){return e[t]}})}),o},t.export=function(e,o,t){Object.defineProperty(e,o,{enumerable:!0,get:t})}},{}]},["3wl5Y"],"3wl5Y","parcelRequire4dc0");
/*!
* artplayer-plugin-chromecast.js v1.0.1
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,o,n,r,i,a,c){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof s[n]&&s[n],l=d.i||{},u=d.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function w(t,o){if(!u[t]){if(!e[t]){if(r[t])return r[t];var i="function"==typeof s[n]&&s[n];if(!o&&i)return i(t,!0);if(d)return d(t,!0);if(f&&"string"==typeof t)return f(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(o){var n=e[t][1][o];return null!=n?n:o},l.cache={};var c=u[t]=new w.Module(t);e[t][0].call(c.exports,l,c,c.exports,s)}return u[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:w(t)}}w.isParcelRequire=!0,w.Module=function(e){this.id=e,this.bundle=w,this.require=f,this.exports={}},w.modules=e,w.cache=u,w.parent=d,w.distDir=void 0,w.publicUrl=void 0,w.devServer=void 0,w.i=l,w.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(w,"root",{get:function(){return s[n]}}),s[n]=w;for(var p=0;p<t.length;p++)w(t[p]);if(o){var m=w(o);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"18Aaf":[function(e,t,o,n){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let t=!1,o=null,n=null,r=e=>{let t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}},i=(t,o)=>{let n=e.url||t.option.url,r=new window.chrome.cast.media.MediaInfo(n,e.mimeType||({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[n.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream"),i=new window.chrome.cast.media.LoadRequest(r);o.loadMedia(i).then(()=>{t.notice.show="Casting started",e.onCastStart?.()}).catch(o=>{throw t.notice.show="Error casting media",e.onError?.(o),o})};return async a=>(a.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:`<i class="art-icon art-icon-cast">${e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>'}</i>`,click:async()=>{if(!t)try{await new Promise((i,a)=>{var c;window.__onGCastApiAvailable=c=>{if(c){let a=window.cast.framework.CastContext.getInstance();a.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),a.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>{let i=window.cast.framework.SessionState;switch(n=t.sessionState,o=t.session,t.sessionState){case i.NO_SESSION:e.onStateChange?.("disconnected"),r("disconnected");break;case i.SESSION_STARTING:e.onStateChange?.("connecting"),r("connecting");break;case i.SESSION_STARTED:e.onStateChange?.("connected"),r("connected");break;case i.SESSION_ENDING:e.onStateChange?.("disconnecting"),r("disconnecting");break;case i.SESSION_RESUMED:e.onStateChange?.("connected"),r("connected")}}),a.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>{let o=window.cast.framework.CastState;switch(t.castState){case o.NO_DEVICES_AVAILABLE:e.onCastAvailable?.(!1);break;case o.NOT_CONNECTED:case o.CONNECTING:case o.CONNECTED:e.onCastAvailable?.(!0)}}),t=!0,i()}else a(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(c=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise((e,t)=>{let o=document.createElement("script");o.src=c,o.onload=e,o.onerror=t,document.body.appendChild(o)})).catch(a)})}catch(t){throw a.notice.show="Failed to initialize Cast API",e.onError?.(t),t}let c=window.cast.framework.CastContext.getInstance();if(o)i(a,o);else try{let e=await c.requestSession();i(a,e)}catch(t){throw a.notice.show="Error connecting to cast session",e.onError?.(t),t}}}),{name:"artplayerPluginChromecast",getCastState:()=>n,isCasting:()=>null!==o})}r.defineInteropFlag(o),r.export(o,"default",()=>i),"undefined"!=typeof window&&(window.artplayerPluginChromecast=i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,t,o,n){o.interopDefault=function(e){retuLine truncated
@@ -1 +1,8 @@
/*! * artplayer-plugin-chromecast.js v2.0.0 * Github:https://github.com/zhw2590582/ArtPlayer * (c) 2017-2024 Harvey Zack * Released under the MIT License. */ !function(e,t,r,n,o){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof i[n]&&i[n],c=a.cache||{},u="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(t,r){if(!c[t]){if(!e[t]){var o="function"==typeof i[n]&&i[n];if(!r&&o)return o(t,!0);if(a)return a(t,!0);if(u&&"string"==typeof t)return u(t);var f=Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}p.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},p.cache={};var l=c[t]=new s.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return c[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:s(t)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.exports={}},s.modules=e,s.cache=c,s.parent=a,s.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(s,"root",{get:function(){return i[n]}}),i[n]=s;for(var f=0;f<t.length;f++)s(t[f]);if(r){var l=s(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd&&define(function(){return l})}}({ipx5S:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",function(){return a});var o=e("@swc/helpers/_/_async_to_generator"),i=e("@swc/helpers/_/_ts_generator");function a(e){var t;return window.__onGCastApiAvailable=function(e){e&&window.cast.framework.CastContext.getInstance().setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED})},t=(0,o._)(function(t){function r(r){var n=e.url||t.option.url,o=e.mimeType||({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[n.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream",i=new window.chrome.cast.media.MediaInfo(n,o),a=new window.chrome.cast.media.LoadRequest(i);r.loadMedia(a).then(function(){console.log("Media loaded successfully")},function(e){t.notice.show="Error casting media",console.log("Error casting media",e)})}return(0,i._)(this,function(n){switch(n.label){case 0:var o;if(!(!window.chrome||!window.chrome.cast))return[3,2];return[4,(o=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise(function(e,t){var r=document.createElement("script");r.src=o,r.onload=e,r.onerror=t,document.body.appendChild(r)}))];case 1:n.sent(),n.label=2;case 2:return t.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:'<i class="art-icon art-icon-cast">'.concat(e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>',"</i>"),click:function(){var e=window.cast.framework.CastContext.getInstance().getCurrentSession();e?r(e):window.cast.framework.CastContext.getInstance().requestSession().then(function(e){r(e)},function(e){t.notice.show="Error connecting to cast session",console.log("Error connecting to cast session",e)})}}),[2,{name:"artplayerPluginChromecast"}]}})}),function(e){return t.apply(this,arguments)}}"undefined"!=typeof window&&(window.artplayerPluginChromecast=a)},{"@swc/helpers/_/_async_to_generator":"eONSn","@swc/helpers/_/_ts_generator":"6Xyd0","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],eONSn:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");function o(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(e){r(e);return}c.done?t(u):Promise.resolve(u).then(n,o)}function i(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var a=e.apply(t,r);function c(e){o(a,n,i,c,u,"next",e)}function u(e){o(a,n,i,c,u,"throw",e)}c(void 0)})}}n.defineInteropFlag(r),n.export(r,"_async_to_generator",function(){return i}),n.export(r,"_",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],iWrD0:[function(e,t,r){r.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},r.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.exportAll=function(e,t){return Object.keys(e).forEach(function(r){"default"===r|Line truncated
/*!
* artplayer-plugin-chromecast.js v1.0.1
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,o,i,c,a){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof s[n]&&s[n],l=u.i||{},f=u.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof s[n]&&s[n];if(!r&&i)return i(t,!0);if(u)return u(t,!0);if(p&&"string"==typeof t)return p(t);var c=Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var a=f[t]=new d.Module(t);e[t][0].call(a.exports,l,a,a.exports,s)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return s[n]}}),s[n]=d;for(var _=0;_<t.length;_++)d(t[_]);if(r){var y=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=y:"function"==typeof define&&define.amd&&define(function(){return y})}}({"1xnGs":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return a});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),c=e("@swc/helpers/cjs/_ts_generator.cjs");function a(e){var t=!1,r=null,n=null,o=function(e){var t=document.querySelector(".art-icon-cast");if(t)switch(e){case"connected":t.style.color="red";break;case"connecting":case"disconnecting":t.style.color="orange";break;default:t.style.color="white"}},a=function(t,r){var n=e.url||t.option.url,o=new window.chrome.cast.media.MediaInfo(n,e.mimeType||({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",ogv:"video/ogg",mp3:"audio/mp3",wav:"audio/wav",flv:"video/x-flv",mov:"video/quicktime",avi:"video/x-msvideo",wmv:"video/x-ms-wmv",mpd:"application/dash+xml",m3u8:"application/x-mpegURL"})[n.split("?")[0].split("#")[0].split(".").pop().toLowerCase()]||"application/octet-stream"),i=new window.chrome.cast.media.LoadRequest(o);r.loadMedia(i).then(function(){var r;t.notice.show="Casting started",null==(r=e.onCastStart)||r.call(e)}).catch(function(r){var n;throw t.notice.show="Error casting media",null==(n=e.onError)||n.call(e,r),r})};return function(s){return(0,i._)(function(){return(0,c._)(this,function(u){return s.controls.add({name:"chromecast",position:"right",tooltip:"Chromecast",html:'<i class="art-icon art-icon-cast">'.concat(e.icon||'<svg height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M512 96H64v99c-13-2-26.4-3-40-3H0V96C0 60.7 28.7 32 64 32H512c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H288V456c0-13.6-1-27-3-40H512V96zM24 224c128.1 0 232 103.9 232 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 344c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24z"/></svg>',"</i>"),click:function(){return(0,i._)(function(){var i,u,l,f,p;return(0,c._)(this,function(c){switch(c.label){case 0:if(t)return[3,4];c.label=1;case 1:return c.trys.push([1,3,,4]),[4,new Promise(function(i,c){var a;window.__onGCastApiAvailable=function(a){if(a){var s=window.cast.framework.CastContext.getInstance();s.setOptions({receiverApplicationId:window.chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,autoJoinPolicy:window.chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),s.addEventListener(window.cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(t){var i,c,a,s,u,l=window.cast.framework.SessionState;switch(n=t.sessionState,r=t.session,t.sessionState){case l.NO_SESSION:null==(i=e.onStateChange)||i.call(e,"disconnected"),o("disconnected");break;case l.SESSION_STARTING:null==(c=e.onStateChange)||c.call(e,"connecting"),o("connecting");break;case l.SESSION_STARTED:null==(a=e.onStateChange)||a.call(e,"connected"),o("connected");break;case l.SESSION_ENDING:null==(s=e.onStateChange)||s.call(e,"disconnecting"),o("disconnecting");break;case l.SESSION_RESUMED:null==(u=e.onStateChange)||u.call(e,"connected"),o("connected")}}),s.addEventListener(window.cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(t){var r,n,o,i=window.cast.framework.CastState;switch(t.castState){case i.NO_DEVICES_AVAILABLE:null==(r=e.onCastAvailable)||r.call(e,!1);break;case i.NOT_CONNECTED:null==(n=e.onCastAvailable)||n.call(e,!0);break;case i.CONNECTING:case i.CONNECTED:null==(o=e.onCastAvailable)||o.call(e,!0)}}),t=!0,i()}else c(Error("Cast API is not available"))},window.chrome&&window.chrome.cast||(a=e.sdk||"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",new Promise(function(e,t){var r=document.createElemLine truncated
@@ -0,0 +1,9 @@
/*!
* artplayer-plugin-danmuku-mask.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,s,a,o,l){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof i[n]&&i[n],p=u.i||{},c=u.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!c[t]){if(!e[t]){if(s[t])return s[t];var a="function"==typeof i[n]&&i[n];if(!r&&a)return a(t,!0);if(u)return u(t,!0);if(d&&"string"==typeof t)return d(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}p.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},p.cache={};var l=c[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,i)}return c[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=c,f.parent=u,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return i[n]}}),i[n]=f;for(var m=0;m<t.length;m++)f(t[m]);if(r){var h=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({"9DY5l":[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"default",()=>l);var a=e("@tensorflow-models/body-segmentation"),o=e("@tensorflow/tfjs-core");function l(e={}){return t=>{let{template:{$video:r,$danmuku:n}}=t,s=null,l=null,i=null,u=null,p=!1,c={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};async function d(){try{await o.setBackend("webgl")}catch(e){console.warn("WebGL backend not available, falling back to CPU",e.message),await o.setBackend("cpu")}}async function f(){await d();let e=a.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:c.solutionPath,modelSelection:c.modelSelection,smoothSegmentation:c.smoothSegmentation,minDetectionConfidence:c.minDetectionConfidence,minTrackingConfidence:c.minTrackingConfidence,selfieMode:c.selfieMode};try{s=await a.createSegmenter(e,t),p=!0}catch(e){console.error("Error initializing segmenter:",e),p=!1}}async function m(){if(!p||r.paused||r.ended){u=requestAnimationFrame(m);return}try{l.width=r.videoWidth,l.height=r.videoHeight;let e=await s.segmentPeople(r);if(!e||0===e.length){u=requestAnimationFrame(m);return}let t=await a.toBinaryMask(e,{r:255,g:255,b:255,a:255},{r:0,g:0,b:0,a:255},c.drawContour,c.foregroundThreshold);await a.drawMask(l,r,t,c.opacity,c.maskBlurAmount);let o=i.getImageData(0,0,l.width,l.height);i.putImageData(function(e){let t=e.data;for(let e=0;e<t.length;e+=4)t[e]>250&&t[e+1]>250&&t[e+2]>250&&(t[e+3]=0);return e}(o),0,0),n.style.maskImage=`url(${l.toDataURL()})`}catch(e){console.error("Error in segmentBody:",e)}u=requestAnimationFrame(m)}async function h(){p||await f(),l||(i=(l=document.createElement("canvas")).getContext("2d")),Object.assign(n.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),m()}function g(){n.style.maskImage="none",u&&(cancelAnimationFrame(u),u=null)}return t.on("ready",h),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:h,stop:g}}}e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu"),"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=l)},{"@tensorflow-models/body-segmentation":"lcmzA","@tensorflow/tfjs-core":"biUij","@tensorflow/tfjs-backend-webgl":"c8bRp","@tensorflow/tfjs-backend-cpu":"hOvdB","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],lcmzA:[function(e,t,r,n){var s,a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"SupportedModels",()=>eR),a.export(r,"blurBodyPart",()=>eZ),a.export(r,"bodyPixMaskValueToRainbowColor",()=>b),a.export(r,"createSegmenter",()=>eD),a.export(r,"drawBokehEffect",()=>eJ),a.export(r,"drawMask",()=>eX),a.export(r,"drawPixelatedMask",()=>eY),a.export(r,"toBinaryMask",()=>eH),a.export(r,"toColoredMask",()=>eK);var o=e("@tensorflow/tfjs-core"),l=e("@tensorflow/tfjs-converter"),i=e("@mediapipe/selfie_segmentation"),u=function(e,t){return(u=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function p(e,t){function r(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=ObjecLine truncated
//# sourceMappingURL=artplayer-plugin-danmuku-mask.esm.js.map
@@ -0,0 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCKwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GALxB,IAAA,EAAA,EAAA,wCACA,EAAA,EAAA,yBAIe,SAAS,EAA2B,EAAS,CAAC,CAAC,EAC5D,OAAO,AAAC,IACN,GAAM,CACJ,SAAU,CAAE,OAAA,CAAM,CAAE,SAAA,CAAQ,CAAE,CAC/B,CAAG,EAEA,EAAY,KACZ,EAAS,KACT,EAAM,KACN,EAAmB,KACnB,EAAgB,CAAA,EAEd,EAAS,CACb,aAAc,EAAO,YAAY,EAAI,8DACrC,eAAgB,EAAO,cAAc,EAAI,EACzC,mBAAoB,AAA8B,KAAA,IAA9B,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 truncated
@@ -0,0 +1,8 @@
/*!
* artplayer-plugin-danmuku-mask.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,s,a,o,l){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},p="function"==typeof i[n]&&i[n],u=p.i||{},c=p.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!c[t]){if(!e[t]){if(s[t])return s[t];var a="function"==typeof i[n]&&i[n];if(!r&&a)return a(t,!0);if(p)return p(t,!0);if(d&&"string"==typeof t)return d(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}u.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},u.cache={};var l=c[t]=new f.Module(t);e[t][0].call(l.exports,u,l,l.exports,i)}return c[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=c,f.parent=p,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=u,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return i[n]}}),i[n]=f;for(var m=0;m<t.length;m++)f(t[m]);if(r){var h=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({ecCzQ:[function(e,t,r,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"default",()=>l);var a=e("@tensorflow-models/body-segmentation"),o=e("@tensorflow/tfjs-core");function l(e={}){return t=>{let{template:{$video:r,$danmuku:n}}=t,s=null,l=null,i=null,p=null,u=!1,c={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};async function d(){try{await o.setBackend("webgl")}catch(e){console.warn("WebGL backend not available, falling back to CPU",e.message),await o.setBackend("cpu")}}async function f(){await d();let e=a.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:c.solutionPath,modelSelection:c.modelSelection,smoothSegmentation:c.smoothSegmentation,minDetectionConfidence:c.minDetectionConfidence,minTrackingConfidence:c.minTrackingConfidence,selfieMode:c.selfieMode};try{s=await a.createSegmenter(e,t),u=!0}catch(e){console.error("Error initializing segmenter:",e),u=!1}}async function m(){if(!u||r.paused||r.ended){p=requestAnimationFrame(m);return}try{l.width=r.videoWidth,l.height=r.videoHeight;let e=await s.segmentPeople(r);if(!e||0===e.length){p=requestAnimationFrame(m);return}let t=await a.toBinaryMask(e,{r:255,g:255,b:255,a:255},{r:0,g:0,b:0,a:255},c.drawContour,c.foregroundThreshold);await a.drawMask(l,r,t,c.opacity,c.maskBlurAmount);let o=i.getImageData(0,0,l.width,l.height);i.putImageData(function(e){let t=e.data;for(let e=0;e<t.length;e+=4)t[e]>250&&t[e+1]>250&&t[e+2]>250&&(t[e+3]=0);return e}(o),0,0),n.style.maskImage=`url(${l.toDataURL()})`}catch(e){console.error("Error in segmentBody:",e)}p=requestAnimationFrame(m)}async function h(){u||await f(),l||(i=(l=document.createElement("canvas")).getContext("2d")),Object.assign(n.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),m()}function g(){n.style.maskImage="none",p&&(cancelAnimationFrame(p),p=null)}return t.on("ready",h),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:h,stop:g}}}e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu"),"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=l)},{"@tensorflow-models/body-segmentation":"5Otso","@tensorflow/tfjs-core":"2Gtps","@tensorflow/tfjs-backend-webgl":"2ZcDF","@tensorflow/tfjs-backend-cpu":"b4yJT","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5Otso":[function(e,t,r,n){var s,a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"SupportedModels",()=>eR),a.export(r,"blurBodyPart",()=>eJ),a.export(r,"bodyPixMaskValueToRainbowColor",()=>b),a.export(r,"createSegmenter",()=>e$),a.export(r,"drawBokehEffect",()=>eQ),a.export(r,"drawMask",()=>eZ),a.export(r,"drawPixelatedMask",()=>eY),a.export(r,"toBinaryMask",()=>eK),a.export(r,"toColoredMask",()=>eX);var o=e("@tensorflow/tfjs-core"),l=e("@tensorflow/tfjs-converter"),i=e("@mediapipe/selfie_segmentation"),p=function(e,t){return(p=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function u(e,t){function r(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=ObjecLine truncated
@@ -0,0 +1,8 @@
/*!
* artplayer-plugin-danmuku-mask.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,t,r,n,a,s,o,i){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},u="function"==typeof c[n]&&c[n],l=u.i||{},p=u.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!p[t]){if(!e[t]){if(a[t])return a[t];var s="function"==typeof c[n]&&c[n];if(!r&&s)return s(t,!0);if(u)return u(t,!0);if(f&&"string"==typeof t)return f(t);var o=Error("Cannot find module '"+t+"'");throw o.code="MODULE_NOT_FOUND",o}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var i=p[t]=new d.Module(t);e[t][0].call(i.exports,l,i,i.exports,c)}return p[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=f,this.exports={}},d.modules=e,d.cache=p,d.parent=u,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var h=0;h<t.length;h++)d(t[h]);if(r){var m=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"1FGEJ":[function(e,t,r,n){var a=e("@parcel/transformer-js/src/esmodule-helpers.js");a.defineInteropFlag(r),a.export(r,"default",function(){return u});var s=e("@swc/helpers/cjs/_async_to_generator.cjs"),o=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("@tensorflow-models/body-segmentation"),c=e("@tensorflow/tfjs-core");function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var r=t.template,n=r.$video,a=r.$danmuku,u=null,l=null,p=null,f=null,d=!1,h={solutionPath:e.solutionPath||"https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation",modelSelection:e.modelSelection||1,smoothSegmentation:void 0===e.smoothSegmentation||e.smoothSegmentation,minDetectionConfidence:e.minDetectionConfidence||.5,minTrackingConfidence:e.minTrackingConfidence||.5,selfieMode:e.selfieMode||!1,drawContour:e.drawContour||!1,foregroundThreshold:e.foregroundThreshold||.5,opacity:e.opacity||1,maskBlurAmount:e.maskBlurAmount||3};function m(){return(0,s._)(function(){return(0,o._)(this,function(e){switch(e.label){case 0:if(d)return[3,2];return[4,(0,s._)(function(){var e,t;return(0,o._)(this,function(r){switch(r.label){case 0:return[4,(0,s._)(function(){return(0,o._)(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,4]),[4,c.setBackend("webgl")];case 1:case 3:return e.sent(),[3,4];case 2:return console.warn("WebGL backend not available, falling back to CPU",e.sent().message),[4,c.setBackend("cpu")];case 4:return[2]}})})()];case 1:r.sent(),e=i.SupportedModels.MediaPipeSelfieSegmentation,t={runtime:"mediapipe",modelType:"general",solutionPath:h.solutionPath,modelSelection:h.modelSelection,smoothSegmentation:h.smoothSegmentation,minDetectionConfidence:h.minDetectionConfidence,minTrackingConfidence:h.minTrackingConfidence,selfieMode:h.selfieMode},r.label=2;case 2:return r.trys.push([2,4,,5]),[4,i.createSegmenter(e,t)];case 3:return u=r.sent(),d=!0,[3,5];case 4:return console.error("Error initializing segmenter:",r.sent()),d=!1,[3,5];case 5:return[2]}})})()];case 1:e.sent(),e.label=2;case 2:return l||(p=(l=document.createElement("canvas")).getContext("2d")),Object.assign(a.style,{maskMode:"alpha",maskSize:"contain",maskRepeat:"no-repeat",backgroundSize:"contain",backgroundRepeat:"no-repeat"}),!function e(){return(0,s._)(function(){var t,r,s,c,m;return(0,o._)(this,function(o){switch(o.label){case 0:if(!d||n.paused||n.ended)return f=requestAnimationFrame(e),[2];o.label=1;case 1:return o.trys.push([1,5,,6]),l.width=n.videoWidth,l.height=n.videoHeight,[4,u.segmentPeople(n)];case 2:if(!(t=o.sent())||0===t.length)return f=requestAnimationFrame(e),[2];return r={r:255,g:255,b:255,a:255},s={r:0,g:0,b:0,a:255},[4,i.toBinaryMask(t,r,s,h.drawContour,h.foregroundThreshold)];case 3:return c=o.sent(),[4,i.drawMask(l,n,c,h.opacity,h.maskBlurAmount)];case 4:return o.sent(),m=p.getImageData(0,0,l.width,l.height),p.putImageData(function(e){for(var t=e.data,r=0;r<t.length;r+=4)t[r]>250&&t[r+1]>250&&t[r+2]>250&&(t[r+3]=0);return e}(m),0,0),a.style.maskImage="url(".concat(l.toDataURL(),")"),[3,6];case 5:return console.error("Error in segmentBody:",o.sent()),[3,6];case 6:return f=requestAnimationFrame(e),[2]}})})()}(),[2]}})})()}function g(){a.style.maskImage="none",f&&(cancelAnimationFrame(f),f=null)}return t.on("ready",m),t.on("destroy",g),{name:"artplayerPluginDanmukuMask",start:m,stop:g}}}e("@tensorflow/tfjs-backend-webgl"),e("@tensorflow/tfjs-backend-cpu"),"undefined"!=typeof window&&(window.artplayerPluginDanmukuMask=u)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","@tensorflow-models/body-segmentation":"8yK79","@tensorflow/tfjs-core":"aOH7b","@tensorflow/tfjs-backend-webgl":"8uLine truncated
@@ -0,0 +1,9 @@
/*!
* artplayer-plugin-danmuku.js v5.1.8
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(t,e,i,a,n,o,s,r){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof l[a]&&l[a],p=d.i||{},u=d.cache||{},h="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function m(e,i){if(!u[e]){if(!t[e]){if(n[e])return n[e];var o="function"==typeof l[a]&&l[a];if(!i&&o)return o(e,!0);if(d)return d(e,!0);if(h&&"string"==typeof e)return h(e);var s=Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}p.resolve=function(i){var a=t[e][1][i];return null!=a?a:i},p.cache={};var r=u[e]=new m.Module(e);t[e][0].call(r.exports,p,r,r.exports,l)}return u[e].exports;function p(t){var e=p.resolve(t);return!1===e?{}:m(e)}}m.isParcelRequire=!0,m.Module=function(t){this.id=t,this.bundle=m,this.require=h,this.exports={}},m.modules=t,m.cache=u,m.parent=d,m.distDir=void 0,m.publicUrl=void 0,m.devServer=void 0,m.i=p,m.register=function(e,i){t[e]=[function(t,e){e.exports=i},{}]},Object.defineProperty(m,"root",{get:function(){return l[a]}}),l[a]=m;for(var c=0;c<e.length;c++)m(e[c]);if(i){var f=m(i);"object"==typeof exports&&"undefined"!=typeof module?module.exports=f:"function"==typeof define&&define.amd&&define(function(){return f})}}({"6ZbtA":[function(t,e,i,a){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i),n.export(i,"default",()=>u);var o=t("./danmuku"),s=n.interopDefault(o),r=t("./heatmap"),l=n.interopDefault(r),d=t("./setting"),p=n.interopDefault(d);function u(t){return e=>{let i=new(0,s.default)(e,t),a=new(0,p.default)(e,i);return i.option.heatmap&&(0,l.default)(e,i,i.option.heatmap),{name:"artplayerPluginDanmuku",emit:i.emit.bind(i),load:i.load.bind(i),config:i.config.bind(i),hide:i.hide.bind(i),show:i.show.bind(i),reset:i.reset.bind(i),mount:a.mount.bind(a),get option(){return i.option},get isHide(){return i.isHide},get isStop(){return i.isStop}}}}u.icons=p.default.icons,"undefined"!=typeof window&&(window.artplayerPluginDanmuku=u)},{"./danmuku":"6C7g0","./heatmap":"h2ayY","./setting":"90QKZ","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],"6C7g0":[function(t,e,i,a){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(i);var o=t("bundle-text:./worker"),s=n.interopDefault(o),r=t("./bilibili");class l{constructor(t,e){let{constructor:i,template:a}=t;this.utils=i.utils,this.validator=i.validator,this.$danmuku=a.$danmuku,this.$player=a.$player,this.art=t,this.queue=[],this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.index=0,this.option=l.option,this.states={wait:[],ready:[],emit:[],stop:[]},this.config(e,!0);let n=new Blob([s.default.replace("export{e as default};","")],{type:"application/javascript"});this.worker=new Worker(URL.createObjectURL(n)),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.resize=this.resize.bind(this),this.destroy=this.destroy.bind(this),t.on("video:play",this.start),t.on("video:playing",this.start),t.on("video:pause",this.stop),t.on("video:waiting",this.stop),t.on("destroy",this.destroy),t.on("resize",this.resize),this.load()}static get option(){return{danmuku:[],speed:5,margin:[10,"25%"],opacity:1,color:"#FFFFFF",mode:0,modes:[0,1,2],fontSize:25,antiOverlap:!0,synchronousPlayback:!1,mount:void 0,heatmap:!1,width:512,points:[],filter:()=>!0,beforeEmit:()=>!0,beforeVisible:()=>!0,visible:!0,emitter:!0,maxLength:200,lockTime:5,theme:"dark",OPACITY:{},FONT_SIZE:{},MARGIN:{},SPEED:{},COLOR:[]}}static get scheme(){return{danmuku:"array|function|string",speed:"number",margin:"array",opacity:"number",color:"string",mode:"number",modes:"array",fontSize:"number|string",antiOverlap:"boolean",synchronousPlayback:"boolean",mount:"?htmldivelement|string",heatmap:"object|boolean",width:"number",points:"array",filter:"function",beforeEmit:"function",beforeVisible:"function",visible:"boolean",emitter:"boolean",maxLength:"number",lockTime:"number",theme:"string",OPACITY:"object",FONT_SIZE:"object",MARGIN:"object",SPEED:"object",COLOR:"array"}}static get cssText(){return` user-select: none; position: absolute; white-space: pre; pointer-events: none; perspective: 500px; display: inline-block; will-change: transform; font-weight: normal; line-height: 1.125; visibility: hidden; font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif; text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px; `}get isRotate(){return this.art.plugins?.autoOrientation?.state}get marginTop(){let{clamp:t}=this.utils,e=this.option.margin[0],{clientHeight:i}=this.$player;return"number"==typeof e?t(e,0,i):"string"==typeof e&&e.endsWith("%")?t(i*(Number.parseFloat(e)/100),0,i):l.option.margin[0]}get marginBottom(){let{clamp:t}=this.utils,e=this.option.margin[1],{clientHeight:i}=this.$player;return"number"==typeof e?t(e,0,i):"string"==typeof e&&e.endsWith("%")?t(i*(NLine truncated
//# sourceMappingURL=artplayer-plugin-danmuku.esm.js.map
@@ -0,0 +1 @@
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCIwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAJxB,IAAA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GAEe,SAAS,EAAuB,CAAM,EACnD,OAAO,AAAC,IACN,IAAM,EAAU,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,GAC3B,EAAU,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,GAMjC,OAJI,EAAQ,MAAM,CAAC,OAAO,EACxB,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,EAAK,E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 truncated
Loaded 100 of 750 files, more files were not shown because too many files have changed in this diff. Show more