mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-08 10:56:15 -08:00
- 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
436 lines
15 KiB
Markdown
436 lines
15 KiB
Markdown
# 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)
|