Files
ArtPlayer/CHANGELOG.md
Harvey Zhao 6aa6f9ad53 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.

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
2026-04-01 12:24:38 +08:00

436 lines
15 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
- Fix safe area issue when enter web fullscreen [#1033](https://github.com/zhw2590582/ArtPlayer/issues/1033)
## [5.4.0] - 2026-03-12
- Refactor `Parcel` to `Vite`
- Change `Artplayer.FULLSCREEN_WEB_IN_BODY` defaults to `true`
- The `reset` method is used to reset video request
- Fix [#1014](https://github.com/zhw2590582/ArtPlayer/issues/1014)
- Fix [#1023](https://github.com/zhw2590582/ArtPlayer/issues/1023)
- Fix [#1028](https://github.com/zhw2590582/ArtPlayer/issues/1028)
- Add `artplayer-plugin-jassub` plugin
- Add `artplayer-proxy-mediabunny` plugin
- Add `artplayer-plugin-audio-track` plugin
- Add `artplayer-plugin-asr` plugin
- Add `artplayer-plugin-danmuku-mask` plugin
- Deprecate `artplayer-plugin-libass` plugin
- Prevent `Hint.css` from polluting global styles
## [5.3.0] - 2025-09-06
- Rename `.esm.js` to `.mjs`
- Remove the default `fill` color value of `svg`
- Optimize the `autoOrientation` logic
- Add `Artplayer.REMOVE_SRC_WHEN_DESTROY`
- Add `artplayer-plugin-document-pip` plugin
- Add `art.events.bindGlobalEvents` method for rebinding global methods
- Optimize `artplayer.d.ts`, now you can directly import `Option`
```ts
import type { Option } from 'artplayer'
const option: Option = {
container: '.artplayer-app',
url: './assets/sample/video.mp4',
}
```
- Simplify `i18n` import
```ts
import fr from 'artplayer/i18n/fr'
import id from 'artplayer/i18n/id'
const option = {
container: '.artplayer-app',
url: './assets/sample/video.mp4',
i18n: { id, fr },
lang: 'fr',
}
```
## [5.2.5] - 2025-08-01
- Add `ESM` version for all packages, such as `artplayer/dist/artplayer.esm.js`
- Recognize `globalThis.CUSTOM_USER_AGENT` global variable for customizing `navigator.userAgent`
- Fix missing `mount` parameter when initializing `artplayer-plugin-danmuku`
## [5.2.3] - 2025-04-20
- Add Vietnamese `vi`
- Clear the `video.src` property on destroy
- Add `onClick` option for `Setting`
- Fix style loading failure of danmuku and chapter plugins when the page has no head tag
- Add `gesture` option to enable or disable gesture events on mobile `video` element
## [5.2.2] - 2025-01-19
- Fix thumbnail crossover issue
- Fix style loading failure when the page has no head tag
- Add slider support in subtitle plugin settings panel for mobile dragging
- Fix positioning error of settings panel when rotating screen
- Fix classname switching error when fullscreen state changes
## [5.2.1] - 2024-10-26
- Refactor `Setting` component, fix state loss issue
- For `Setting` of type `range`, callback now returns an array of numbers instead of a single number
- Remove `isStringOrNumber` utility function
- Fix inconsistent state issue in `artplayer-plugin-hls-control`
- Deprecate `artplayer-plugin-dash-quality` plugin
- Add new `artplayer-plugin-dash-control` plugin
- Use `code` instead of deprecated `keyCode` for keyboard events
- Add `keydown` event to listen for `keydown` from `document`
## [5.2.0] - 2024-10-19
- Add `option.proxy` for proxying third-party `video` and `canvas`
- Add `artplayer-proxy-canvas` proxy, enabling video playback via `canvas`
- Add `option.thumbnails.scale` for preview image scaling
- Fix bug where changing `art.url` didn’t trigger `autoPlayback`: [#797](https://github.com/zhw2590582/ArtPlayer/issues/797)
- Add `art.subtitle.cues` property for retrieving all subtitle list
- Add `art.subtitle.activeCues` property for retrieving active subtitles
- Add `subtitleBeforeUpdate` event triggered before subtitle element rendering
- Change `subtitleUpdate` event to `subtitleAfterUpdate`, triggered after subtitle element rendering
- Optimize trigger timing and callback parameters of `subtitleLoad` event
- Remove `subtitleSwitch` event; use `subtitleLoad` instead
- Upgrade `artplayer-plugin-hls-quality` to `artplayer-plugin-hls-control`
- Add `artplayer-plugin-ambilight` plugin
- Fix `thumbnails` display bug
## [5.1.7] - 2024-08-15
- Add `Artplayer.STYLE` property to return player style text
- `art.screenshot('your-name')` now supports custom file names
- When `Artplayer.CONTEXTMENU` is `false`, default context menu is no longer hidden
- Add `art.thumbnails` property for dynamically setting `thumbnails`
## [5.1.6] - 2024-06-15
- Optimize `setBar` event
- Add `artplayerPluginChapter` plugin
- Add `art.plugins.artplayerPluginDanmuku.load(target)` parameter for appending danmuku library
- Add `width` option to danmuku plugin; when player width is smaller than this, danmuku sender is placed at the bottom
- Fix `artplayerPluginVttThumbnail` not displaying on mobile
- Fix danmuku plugin style and percentage font-size bug
- `thumbnails` are now visible on mobile too
- Restore `screen.orientation.lock` functionality
## [5.1.5] - 2024-06-01
- Refactor `artplayerPluginDanmuku` plugin
- Add `artplayerPluginChromecast` plugin
- Add `fullscreenError` event
- Optimize double-click event: [#728](https://github.com/zhw2590582/ArtPlayer/pull/728)
- Fix delayed display of `thumbnails`
- Add `art.plugins.lock.state = true/false` for manually controlling `lock` state
- Control bar no longer auto-hides when mouse is on it or when settings panel is open
- Remove `screen.orientation.lock` due to compatibility issues
- Fix `fullscreen` bug on mobile
## [5.1.1] - 2024-01-11
- Plugin functions now support both synchronous and asynchronous returns
## [5.1.0] - 2023-12-23
- Plugin functions now support async return
- Player will no longer be destroyed after reaching error limit for playback address
- Split language files, core no longer bundles multiple languages [Language Settings](https://artplayer.org/document/start/i18n.html)
- Updating components now supports updating only specified fields [pull/549](https://github.com/zhw2590582/ArtPlayer/pull/549)
- Add `muted` event triggered when mute state changes
- Add `Artplayer.LOG_VERSION` global config to control whether to print player version (default `true`)
- Add `Artplayer.USE_RAF` global config to control whether to use `requestAnimationFrame` (default `false`), currently for smooth progress bar effect
- Remove default styles `margin:0;padding:0;` to avoid conflicts with third-party libraries
- Subtitle line changed from `p` to `div` tag, with classname `art-subtitle-line`
- On mobile, tapping video toggles control bar display
- Remove `art.loop` interval playback feature (not commonly used)
- Subtitle track now has `label` attribute to display subtitle names on mobile
- Add utility functions `unescape`, `isBrowser`, `setStyleText`
- Add `artplayerPluginMultipleSubtitles` plugin for merged subtitle files: [demo](https://www.artplayer.org/?libs=./uncompiled/artplayer-plugin-multiple-subtitles/index.js&example=multiple.subtitles)
- Modify mini progress bar display
## [5.0.9] - 2023-05-14
- Fix `art.autoOrientation` style bug
- Remove animation effect of player container
## [5.0.8] - 2023-05-13
- Fix conflict of `art.mini`
- Fix animation bug of `art.aspectRatio`
## [5.0.7] - 2023-05-13
- Switching via `switchUrl` or `switchQuality` preserves existing adjustments such as `aspectRatio`, `playbackRate`, `flip`, `autoSize`
- Remove the second `name` parameter from `switchUrl` and `switchQuality`
- Add `isIOS13` utility to fix inaccurate `isMobile` detection on iOS 13+
- `art.autoSize` and `art.autoHeight` are now methods: `art.autoSize()` and `art.autoHeight()`
- Add new property `art.quality` for dynamically updating quality list
- Fix incorrect `art.aspectRatio` property
- Add `art.switch` setter property, same as `art.switchUrl` method
## [5.0.6] - 2023-05-03
- Fix style bug of settings panel
## [5.0.5] - 2023-05-03
- Add `heatmap` option to danmuku plugin for enabling heatmap (default: off)
- Fix English subtitle line break style bug
- Fix settings panel style bug
- Remove unnecessary global properties
- Remove `title` option (not useful now)
- Remove `whitelist` option (not useful now)
## [5.0.4] - 2023-04-27
- Fix controller dropdown list style bug
## [5.0.3] - 2023-04-26
- Fix `event.pageY` value error in volume controller
- Update build config, `artplayer.legacy.js` now compatible with IE 11
## [5.0.2] - 2023-04-24
- Fix style compatibility issue of control bar position
## [5.0.1] - 2023-04-24
- Fix web fullscreen style bug
- Fix built-in settings text error
## [5.0.0] - 2023-04-23
- Rewrite volume controller
- Fix incorrect progress drag angle on mobile
- Rewrite `mini` mode, now video detaches from original container
- All components (layers, controller, contextmenu, settings panel) support dynamic deletion and updating
- Subtitle option adds `onVttLoad` for modifying vtt text before output
- Rewrite all styles, add many `css` variables
- Add `cssVar` option for initializing `css` variables
- Add `cssVar` method for getting/setting `css` variables
- `artplayer-plugin-hls-quality` adds `getResolution` function option for getting resolution text from level
- Add `artplayer-plugin-dash-quality` plugin for adding Dash quality list to player
- Fix `lock` and `loop` event issues
- Add Russian `ru` and Indonesian `id` languages
- Update `artplayer-plugin-control` for `artplayer@5.0.0`
- Update `artplayer-plugin-dash-quality` for `artplayer@5.0.0`
- Update `artplayer-plugin-hls-quality` for `artplayer@5.0.0`
- Update `artplayer-plugin-danmuku` for `artplayer@5.0.0`
## [4.6.2] - 2023-01-26
- Default `Artplayer.PROGRESS_HEIGHT` changed to `6`
- Add `artplayer-plugin-vtt-thumbnail` to generate video preview images from vtt subtitle files
- Add `Artplayer.FULLSCREEN_WEB_IN_BODY` for whether to mount player to `document.body` in web fullscreen (default `false`)
- Change subtitle offset adjustment to slider
- Subtitle option adds `escape` (default `true`) for HTML escaping
## [4.6.1] - 2023-01-11
- Write brand new docs
- Optimize `d.ts`
- Remove redundant events
- Optimize some styles
- Add `i18n` option
## [4.6.0] - 2022-12-31
- Optimize style effects of control bar icons
- Optimize style effects of settings panel
- Fix incorrect `art.fullscreen` state detection
- Add `artplayer-plugin-control` plugin to change control bar style
## [4.5.12] - 2022-11-20
- Fix `art.loop = []` display bug
## [4.5.11] - 2022-11-06
- Add `Artplayer.CONTEXTMENU` for controlling whether to show contextmenu (default `true`)
- Whitelist function default `true` on mobile, all devices use player UI
## [4.5.10] - 2022-11-05
- Fix subtitle not showing in Firefox: [#pull/415](https://github.com/zhw2590582/ArtPlayer/pull/415)
- Info popup supports clicking to select video property text
## [4.5.9] - 2022-11-05
- Add `art.type` property to get/set video type
- Add `art.video` property to get video element
- Add `artplayer-tool-iframe` plugin to control player inside iframe
- Add `artplayer-plugin-hls-quality` plugin for adding Hls quality list
- Add `Artplayer.PLAYBACK_RATE` for default playback rates `[0.5, 0.75, 1, 1.25, 1.5, 2]`
- Add `Artplayer.ASPECT_RATIO` for default ratios `['default','4:3','16:9']`
- Add `Artplayer.FLIP` for default flip options `['normal','horizontal','vertical']`
- Add `Artplayer.PROGRESS_HEIGHT` (default: `4`)
- Add `legacy.js` version for older browsers (larger size)
- Remove `examples` dir, no longer provide Vue/React examples
## [4.5.8] - 2022-10-09
- Add Farsi language
- Add `Artplayer.DEBUG` (default `false`) for debug logs
- Add `art.setting.update()` for dynamic settings update
- Optimize `artplayer.d.ts`
## [4.5.7] - 2022-09-28
- Add `Artplayer.VOLUME_STEP` for controlling volume step (default `0.1`)
- Add `Artplayer.SEEK_STEP` for controlling seek step (default `5s`)
- Fix some svg icons not showing on mobile
- Fix desktop progress bar cannot click+drag simultaneously
- Fix mobile progress bar cannot click+drag
- Add `art.isRotate` property for detecting auto fullscreen rotation
- Settings panel `range` adds `onChange` option for real-time values
```js
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
setting: true,
settings: [
{
html: 'Slider',
tooltip: '5x',
range: [5, 1, 10, 0.1],
onChange: function (item) {
return item.range + 'x';
},
},
],
});
```
## [4.5.6] - 2022-09-19
- Fix hls.js not working in Safari
## [4.5.5] - 2022-09-19
- Ad plugin adds `option.muted` for autoplay muted ads
- Danmuku plugin exposes `art.plugins.artplayerPluginDanmuku.reset()` to clear display
- Danmuku plugin exposes `art.plugins.artplayerPluginDanmuku.option` for current config
- Fix subtitle bug in iOS fullscreen
- Add Spanish `es`
## [4.5.4] - 2022-08-01
### Added
- Add `Artplayer.AUTO_PLAYBACK_MIN` for min playback memory value (default `5s`)
- Add `Artplayer.TOUCH_MOVE_RATIO` for mobile progress drag ratio (default `0.5`)
- `option.thumbnails` adds optional `width`/`height`
- Add `option.id` for unique playback memory identifier
## [4.5.3] - 2022-07-13
### Added
- `url` option allows empty string for async `art.url`
```js
const art = new Artplayer({
url: '',
container: '.artplayer-app',
});
setTimeout(() => {
art.url = '/assets/sample/video.mp4';
}, 1000);
```
- `art.play()` always returns Promise; `play` event is async
```js
const art = new Artplayer({
url: '/assets/sample/video.mp4',
container: '.artplayer-app',
});
art.on('ready', async () => {
try {
await art.play();
console.log('Play success');
} catch (error) {
console.log('Play failed', error.message);
}
});
```
- Add `airplay` (only Safari)
```js
const art = new Artplayer({
url: '/assets/sample/video.mp4',
container: '.artplayer-app',
airplay: true,
});
```
## [4.5.2] - 2022-06-22
- Optimize auto-playback to allow user choice
## [4.5.0] - 2022-06-21
- Remove built-in ads
- Add ad plugin
## [4.4.7] - 2022-06-13
- Support danmuku lib d.ts
- Update deps
## [4.4.6] - 2022-06-11
- Add danmuku lib d.ts
- Adjust subtitle font-size param
- Optimize regex parsing of xml danmuku
## [4.4.5] - 2022-06-02
- Fix theme color missing in mini mode
## [4.4.3] - 2022-05-26
- Fix custom mounted input residual on danmuku destroy
- Fix mini mode size calculation error
## [4.4.2] - 2022-05-20
- Remove UI init `video:loadedmetadata` event
- Danmuku exposes `load` for switching sources
- Add error icon after video load error limit
- Fix multiple init of setting panel bug
## [4.4.1] - 2022-05-17
- Add `art.isInput`, when true control bar won’t auto-hide (e.g. typing danmuku)
- Add `art.isLock`, when true on mobile prevents seek/play/pause
- Fix fixed width bug of danmuku input box
- Settings panel supports `range` and `onRange`
- Add `isAndroid` and `isIOS` utils
- Danmuku adds `lockTime`, `maxLength`, `minWidth`, `maxWidth`, `mount`, `beforeEmit`, `theme`
## [4.4.0] - 2022-05-15
- Settings panel supports `switch` and `onSwitch`
- Danmuku plugin adds settings panel and send
- Danmuku adds default mode and font-size
- Danmuku font-size supports percentage of player
- Fix flip icon missing
- Player with focus won’t auto-hide control bar
- Remove subtitle toggle button (manual config required)