feat: add danmuku plugin and i18n setup documentation
- Introduced a new danmuku plugin with multiple run code options in the documentation.
- Added language settings documentation for i18n, including default languages, import instructions, and examples for adding and modifying languages.
- Implemented input handling for media sources in the artplayer-proxy-mediabunny package, supporting various formats including HLS.
- Created m3u8 control functionalities for managing audio and video quality settings in the player.
Update mediabunny.js
- Created a new documentation file for the danmuku plugin with code examples.
- Added a comprehensive guide for language settings (i18n) including default languages, importing languages, adding new languages, and modifying existing languages.
- Included code snippets for initializing the Artplayer with different language settings.
feat: implement safe area insets for improved video rotation handling
feat: add console log for safe area insets in autoOrientation plugin
feat: enhance mobile meta tags for better web app support
- Created a new documentation file for the danmuku plugin with code examples.
- Added a new documentation file for language settings (i18n) with detailed instructions on language imports, default languages, and how to add or modify languages.
- Included code snippets for initializing the Artplayer with different language settings.
- Created a new documentation file for the danmuku plugin, including code snippets for usage.
- Added a new i18n setup guide, detailing language settings, default languages, language imports, and how to add or modify languages.
- Included example code for initializing the Artplayer with different languages and importing language files.
- Created a new documentation file for the danmuku plugin with code examples for usage.
- Added a new i18n setup guide, detailing language settings, default languages, and how to import and modify languages.
- Included code snippets for initializing the Artplayer with different languages and examples for adding new languages.
- Removed the old ArtplayerPluginIframe implementation.
- Added ArtplayerToolIframe class with methods for iframe communication.
- Implemented postMessage and onMessage methods for message handling.
- Created a new TypeScript definition file for ArtplayerToolIframe.
- Updated documentation links to point to the new iframe tool.
- Added npm ignore file and README for the new package.
- Included compiled and uncompiled versions of the new iframe tool.
- Updated package.json with relevant metadata and exports.
feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added a comprehensive guide for language settings (i18n) including default languages, importing languages, adding new languages, and modifying existing languages.
- Included code snippets for initializing the Artplayer with different language settings.
Add internationalization support for multiple languages in Artplayer
- Introduced Arabic (ar), Czech (cs), Spanish (es), Persian (fa), French (fr), Indonesian (id), Polish (pl), Russian (ru), Turkish (tr), Vietnamese (vi), and Traditional Chinese (zh-tw) translations.
- Created corresponding JavaScript and ES module files for each language containing translated strings for player controls and settings.
- Added a new documentation file for language settings in the project.
feat: add initial implementation of start option page with interactive code execution buttons
feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin, providing code examples for usage.
- Added a comprehensive guide for language settings, including default languages, importing languages, adding new languages, and modifying existing languages.
- Included code snippets for initializing the Artplayer with different language settings and importing language files.
refactor: update danmuku worker implementation and remove unused i18n files
- Changed the way the Danmuku class creates a Web Worker by using a worker loader instead of creating a blob.
- Removed Arabic, Czech, Spanish, Persian, French, Indonesian, Polish, Russian, Turkish, Vietnamese, and Traditional Chinese i18n files as they are no longer needed.
- Updated the Vite build configuration to disable banners for inline workers and added a plugin to remove worker banners from generated code.
feat: add danmuku plugin and i18n setup documentation
- Created a new documentation file for the danmuku plugin, providing code examples for usage.
- Added a new documentation file for language settings (i18n), detailing how to set default languages, import languages, and add new languages.
- Included code snippets for initializing the Artplayer with different language settings and examples for modifying existing languages.
feat: add danmuku plugin and i18n setup documentation
- Created a new documentation file for the danmuku plugin with code examples.
- Added a new documentation file for language settings (i18n) including import instructions and examples for setting default and custom languages.
- Updated the i18n documentation to include details on adding and modifying languages.
feat: add danmuku plugin and i18n setup documentation
- Created a new JavaScript file for the danmuku plugin documentation with multiple code execution buttons.
- Added a new JavaScript file for i18n (internationalization) setup documentation, including instructions for language settings, importing languages, and modifying language options.
- Included examples for setting default languages and adding new languages in the i18n documentation.
Refactor code structure for improved readability and maintainability
- Created a new documentation file for the danmuku plugin with code examples.
- Added a comprehensive guide for language settings (i18n) including default languages, importing languages, adding new languages, and modifying existing languages.
- Included code snippets for initializing the Artplayer with different language configurations.
- Created a new documentation file for the danmuku plugin with code examples.
- Added a new documentation file for language settings (i18n) with detailed instructions on language imports, default languages, and how to add or modify languages.
Remove debugging border from the websr plugin's styling
Enhance canvas sizing logic in artplayer-plugin-websr
- Updated canvas positioning to center it within the player.
- Introduced a new function to calculate canvas size based on the video aspect ratio.
- Adjusted canvas dimensions during initialization and on resize events to maintain aspect ratio.
- Ensured canvas styles are updated to reflect the calculated dimensions.
feat: add comparison mode to artplayer-plugin-websr
- Updated README.md to reflect new comparison feature and simplified content.
- Modified package.json to remove unnecessary keywords.
- Enhanced index.js to implement comparison functionality, allowing users to compare original and upscaled video.
- Added new methods for enabling, disabling, and toggling comparison mode, as well as setting and getting the comparison position.
- Updated TypeScript definitions to include new comparison options and methods.
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive language settings documentation, including default languages, import instructions, and examples for adding and modifying languages.
- Updated the i18n documentation to reflect changes in language handling and provide clear examples for users.
- Implemented a React template with Vite, including ESLint configuration and necessary dependencies.
- Created a Vue template with Vite, including setup for Artplayer and plugins.
- Added internationalization support in both React and Vue examples.
- Included sample video and Danmuku plugin integration in both frameworks.
- Established project structure with appropriate configuration files and README documentation.
- Implemented the audio track plugin for ArtPlayer, allowing audio to be synchronized with video playback.
- Added main functionality in `src/index.js` to handle audio playback, synchronization, and event listeners for play, pause, seek, and volume changes.
- Created TypeScript definitions for the plugin in `types/artplayer-plugin-audio-track.d.ts`.
- Included necessary build files in `dist/` for various module formats (CommonJS, ES Module, and legacy).
- Updated package metadata in `package.json` and added a README for documentation.
- Added `.npmignore` to exclude unnecessary files from the package.
- Created a new documentation file for language settings in i18n.
- Added examples for setting default languages and importing additional languages.
- Included instructions for adding and modifying languages in the ArtPlayer plugin.
- Introduced a new plugin: artplayer-plugin-liquid-glass with various build formats (legacy, mjs, etc.).
Remove options section from README for clarity
Add 'waiting' event emission during seeking in mediabunnyEngine
This change emits a 'waiting' event when the seeking process begins,
improving the event handling and allowing for better synchronization
during media playback.
fix(audioEngine): adjust audio context suspension timing for improved playback responsiveness
refactor(mediabunnyVideoShim): remove redundant width and height getters; enhance poster setter and add setAttribute method
feat: initialize artplayer-proxy-mediabunny with essential files and structure
feat: implement audio and video engines for mediabunny integration
- Added audioEngine.js to handle audio playback using MediaBunny.
- Created mediabunnyEngine.js to manage both audio and video playback.
- Implemented videoEngine.js for rendering video on a canvas.
- Introduced canvasProxy.js to create a canvas element and manage its methods.
- Developed mediabunnyVideoShim.js to bridge ArtPlayer and MediaBunny functionalities.
- Added videoEvents.js for custom event handling related to video playback.
- Included a utility function clamp.js for value clamping.
feat: add playback rate control to audio and video engines
- Introduced playback rate management in the audio engine, allowing dynamic adjustment of playback speed.
- Updated the mediabunny engine to expose the new setPlaybackRate method.
- Enhanced the mediabunny video shim to support playback rate adjustments, including getter and setter for playbackRate.
- Added event emission for rate changes to ensure proper handling in the application.
Enhance audio engine and video shim functionality
- Added a check to ensure the audio context is initialized before playing audio in the audio engine.
- Introduced a new 'playing' getter in the video shim to accurately reflect the playback state, indicating when the video is neither paused nor ended.
Refactor audio context initialization to handle errors and remove async/await
- Changed `ensureAudioContext` from async to synchronous to simplify error handling.
- Added a try-catch block to handle potential errors when creating the AudioContext with a specified sample rate.
- Updated calls to `ensureAudioContext` to remove unnecessary await statements.
Enhance Mediabunny Engine and Video Shim with State Management and Error Handling
- Added readyState, networkState, and error properties to the Mediabunny Engine for better state management.
- Implemented error handling during media loading, emitting appropriate events on error.
- Updated the Video Engine to emit a 'timeupdate' event for better synchronization.
- Extended the Mediabunny Video Shim to expose new properties (readyState, networkState, error) and methods for improved functionality.
- Added seekable property to the Video Shim to provide seekable range based on media duration.
- Implemented additional properties and methods in the Video Shim for autoplay, loop, controls, currentSrc, poster, preload, defaultMuted, and defaultPlaybackRate.
- Enhanced requestVideoFrameCallback and cancelVideoFrameCallback methods for better frame handling.
refactor: streamline audio and video engine implementations
- Updated audioEngine.js to improve readability and maintainability by using consistent formatting and simplifying function structures.
- Refactored mediabunnyEngine.js to enhance clarity and ensure consistent coding style.
- Enhanced videoEngine.js with improved async handling and clearer function definitions.
- Modified canvasProxy.js to maintain consistent formatting and improve readability.
- Updated mediabunnyVideoShim.js to streamline event handling and improve clarity.
- Refactored videoEvents.js for better readability and consistency in event listener management.
- Simplified clamp.js for improved readability.
feat: enhance audio and video loading with metadata callbacks
- Updated audioEngine to accept an optional onMetadata callback in the load function, which is triggered upon loading completion.
- Modified mediabunnyEngine to handle video and audio loading concurrently, emitting loadedmetadata and durationchange events only when both are ready.
- Enhanced videoEngine to include an onMetadata callback in the load function, ensuring metadata events are emitted appropriately.
- Implemented a throttling mechanism for the timeupdate event in videoEngine to reduce event emissions and improve performance.
feat: add seeking state and played property to mediabunny engine and video shim
- Introduced a `_seeking` state in the mediabunny engine to track seek operations.
- Emitted 'seeking' and 'seeked' events during seek operations.
- Added a `seeking` getter to expose the seeking state.
- Implemented a `played` property in the video shim to provide playback range information.
- Added `width` and `height` getters to the video shim for better video dimension access.
- Enhanced cross-origin handling in the video shim.
feat(audioEngine): enhance audio playback management with starvation detection
- Added an event emitter to notify when the audio context is waiting.
- Implemented a starvation check that suspends the audio context if playback is delayed.
- Introduced a mechanism to track the latest scheduled end time of audio buffers.
- Updated the handling of audio buffer playback to ensure proper state transitions.
refactor: remove unnecessary comments and streamline code in audio, video, and mediabunny engines
feat: add resize functionality to canvas proxy and update type definitions
- Implemented a resize function in canvasProxy.js to adjust canvas size based on player dimensions and video metadata.
- Updated TypeScript definitions for artplayer-proxy-mediabunny to include option and result types.
- Modified build-ts script to include all plugin type definitions.
- Added TypeScript definitions for artplayer-proxy-canvas and artplayer-proxy-mediabunny.
refactor: remove unused properties from Artplayer instance and make option parameter optional in artplayerProxyCanvas type definition
Enhance Mediabunny and Video Engine functionality
- Added event listener for 'ended' event in mediabunnyEngine to handle playback state.
- Modified seek function to check if playback should resume after seeking.
- Reset canvas dimensions to zero in videoEngine when video track is not available or cannot be decoded.
- Ensured canvas is cleared when video track is invalid to prevent rendering issues.
Emit 'waiting' event during loadstart in mediabunnyEngine
Refactor event emission in mediabunnyEngine and add sleep utility function
- Changed the event emission for 'loadstart' to be asynchronous using setTimeout.
- Introduced a new utility function 'sleep' to facilitate delayed execution in promises.
feat: enhance mediabunny proxy with new options and source handling
- Added options for event delay, load timeout, timeupdate interval, AV sync tolerance, poster, and source in README.
- Implemented source normalization in audio and video engines to support URL, Blob, and ReadableStream.
- Updated mediabunny engine to handle new options and improve load handling with timeout and error management.
- Enhanced video engine to draw a poster when no video source is available and manage playback rate.
- Modified shim to accept source option and integrate with the new engine options.
- Updated TypeScript definitions to reflect new options and source types.
feat: add dropLateFrames option to video and mediabunny engines
- Introduced dropLateFrames option in mediabunnyEngine and videoEngine to control frame dropping behavior.
- Updated videoEngine logic to handle frame rendering based on the dropLateFrames setting.
- Added type definition for dropLateFrames in TypeScript declaration file.
fix: delay loadstart event emission to ensure proper event handling
The 'loadstart' event emission is now wrapped in a setTimeout to ensure it is triggered after the current call stack is cleared. This change aims to improve the timing of event emissions and prevent potential issues with event handling in the mediabunny engine.
feat: add preflight range check and drop late frames option
- Updated README.md to include new options: dropLateFrames and preflightRange.
- Enhanced mediabunnyEngine to support new options with default values.
- Implemented preflight function in videoEngine to check server support for Range requests.
- Adjusted videoEngine to utilize preflight check before loading media.
- Updated TypeScript definitions to include preflightRange option.
Remove aspectRatio option from Artplayer configuration
Update README and mediabunny example URL for consistency
Refactor code structure for improved readability and maintainability
Update dependencies and fix play/seek state management in mediabunnyEngine
Refactor code structure for improved readability and maintainability
fix(types): update export syntax and formatting in TypeScript declaration files
- 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 guide with code snippets for better clarity and usability.
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive i18n setup instructions, including default language settings, language imports, and examples for adding and modifying languages.
- Updated the structure and content of the i18n documentation to enhance clarity and usability.
- Implemented a new danmuku plugin in the React template for displaying bullet comments.
- Added internationalization (i18n) support with French and Indonesian languages.
- Updated the App component to include the new Player component with options for video playback.
- Enhanced the Player component to initialize Artplayer with plugins and language settings.
- Created separate files for App and Player components to improve code organization.
- Added example usage of language settings and plugins in the Player component.
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive i18n (internationalization) setup instructions, including default language settings, language imports, and examples for adding and modifying languages.
- Updated the structure of the i18n documentation for better clarity and usability.
- Created a new documentation file for the danmuku plugin with code examples.
- Added a comprehensive guide for language settings, including default languages, importing languages, adding new languages, and modifying existing languages.
- Updated the i18n documentation to reflect changes in language handling and provide code snippets for implementation.
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive i18n setup instructions, including default language settings, language imports, and examples for adding and modifying languages.
- Updated the structure of the i18n documentation for clarity and usability.
- Created a new documentation file for the danmuku plugin with interactive code examples.
- Added comprehensive language settings documentation, including default languages, import instructions, and examples for adding and modifying languages.
- Updated the i18n documentation to reflect changes in language handling and provide clearer examples for users.
- Created a new documentation file for the danmuku plugin with code examples for usage.
- Added comprehensive language settings documentation, including default languages, importing languages, adding new languages, and modifying existing languages.
- Updated the i18n setup guide to reflect changes in language handling and provide code snippets for implementation.
- Created a new documentation file for the danmuku plugin with interactive code execution.
- Added comprehensive i18n setup instructions, including default language settings, language imports, and examples for adding and modifying languages.
- Introduced a test file to verify the integration of the danmuku plugin.
- 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 guide to reflect changes in language handling and provide code snippets for implementation.
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive language settings documentation, including default languages, import methods, and how to add or modify languages.
- Updated the i18n setup guide to reflect changes in language handling and provide code snippets for implementation.
- 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 structure of the i18n documentation to improve clarity and usability.
- Implemented the core functionality of the Document Picture-in-Picture plugin.
- Created main plugin file `artplayer-plugin-document-pip.js` with support for opening and closing the PIP window.
- Added legacy support in `artplayer-plugin-document-pip.legacy.js`.
- Defined plugin options in `package.json` and included necessary metadata.
- Developed the main logic in `src/index.js`, including style copying and event handling.
- Created TypeScript definitions in `types/artplayer-plugin-document-pip.d.ts` for better type safety.
- 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.
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.
- 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.
* chore: Bump artplayer-plugin-danmuku version to 5.1.0
* chore: Update danmuku plugin with new mount option
* chore: Update danmuku plugin with new mount option
* chore: Update danmuku plugin with new mount option
* chore: Update danmuku plugin with new mount option
* chore: Update danmuku plugin with new mount option
* chore: Update danmuku plugin with new mount option
* chore: Refactor getDanmuTop function to handle additional cases
* chore: Refactor getDanmuTop function to handle additional cases
* chore: Update danmuku plugin with new mount option
* chore: Update danmuku plugin with new mount option
* chore: Refactor danmuku plugin to always create a new Setting instance
* Refactor danmuku plugin to always create a new Setting instance
* Refactor danmuku plugin to always create a new Setting instance
* Update danmuku.js
* Update danmuku.js
* Refactor danmuku plugin to include a new Setting instance
* Refactor danmuku plugin to include a new Setting instance
* Refactor danmuku plugin styles for better alignment and spacing
* Refactor danmuku plugin styles for better alignment and spacing
* Refactor danmuku plugin styles for better alignment and spacing
* Refactor danmuku plugin styles for better alignment and spacing
* Refactor danmuku plugin styles for better alignment and spacing
* chore: Update package.json files
* Refactor danmuku plugin to remove unnecessary whitespace in the setting template
* chore: Remove ESLint configuration files and update npm dependencies
* chore: Update ESLint configuration to disable console warnings and fix unused variable warnings
* chore: Update ESLint configuration to fix quotes rule
* Update package.json
* Update package.json
* Update setting.js
* chore: Compress CSS code in build script
* chore: Update build script to compress JavaScript code
* chore: Update build script to compress JavaScript code
* chore: Refactor setting.js to improve code organization and remove unused variables
* chore: Add isHover flag to Control component for better control hiding behavior
* chore: Update Control component to use $bottom instead of $controls for better control hiding behavior
* Update package.json
* Update package.json
* Update package.json
* chore: Update lerna.json to use independent versioning and yarn as npm client
* refactor: Update Danmuku class to support configurable modes and visibility
* refactor: Update Danmuku styles for better visibility and configurability
* feat: Update font weight in Danmuku styles for better readability
* refactor: Update Danmuku class to support configurable modes and visibility
* refactor: Add opacity, area, font, and speed sliders to Danmuku settings
* refactor: Initialize sliders for opacity, area, font, and speed in Danmuku settings
* feat: Add slider UI for opacity, area, and speed in Danmuku settings
* feat: Update slider styles in Danmuku settings for better visibility and configurability
* refactor: Improve Danmuku settings UI for better visibility and configurability
* refactor: Improve Danmuku settings UI for better visibility and configurability
* refactor: Update slider styles in Danmuku settings for better visibility and configurability
* refactor: Update margin slider initialization in Danmuku settings
* refactor: Update slider styles and initialization in Danmuku settings
* refactor: Update Danmuku class to support configurable visibility
* refactor: Update Danmuku class to support configurable visibility
* refactor: Update Danmuku class to support configurable visibility
* refactor: Update Danmuku class to support configurable visibility
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Improve Danmuku settings UI for better visibility and configurability
* add lock
* refactor: Add lock and unlock methods to Danmuku settings
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* Update artplayer-plugin-danmuku.d.ts
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings event listeners
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability
* refactor: Update Danmuku settings UI for better visibility and configurability