mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-08 19:06:15 -08:00
7eb63eff914543d1b2c902707908a3d8381689dc
ArtPlayer
ArtPlayer is a modern HTML5 video player
Status
⚠️ This project is WIP and not ready for production use yet!
Demo
Introduction
Install
$ npm install --save artplayer
import Artplayer from 'artplayer';
import 'artplayer/dist/artplayer.css';
OR umd builds are also available
<link rel="stylesheet" href="path/to/artplayer.css" />
<script src="path/to/artplayer.js"></script>
Will expose the global variable to window.Artplayer.
Usage
<div class="artplayer-app"></div>
var art = new Artplayer({
container: '.artplayer-app',
url: 'path/to/video.mp4'
});
Ecosystem
| Project | Description |
|---|---|
| artplayer-plugin-danmu | Danmu plugin for ArtPlayer |
Configuration
| parameter | description | example | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
container |
Type: string, elementDefault: .artplayerRequired: trueDOM container of the player, you need to initialize a size for the container element |
Demo | ||||||||||||||
url |
Type: stringDefault: ''Required: trueVideo source url, Three video file formats are supported: mp4, ogg, webm
|
Demo | ||||||||||||||
poster |
Type: stringDefault: ''Video poster image url |
Demo | ||||||||||||||
title |
Type: stringDefault: ''Video title, will be shown in screenshot file name and pip mode
|
Demo | ||||||||||||||
volume |
Type: numberDefault: 0.7Default volume, player will cache the last volume, which may be overwritten |
Demo | ||||||||||||||
autoplay |
Type: booleanDefault: falseWhether to play automatically, sometimes it doesn't necessarily succeed More info: autoplay-policy-changes |
Demo | ||||||||||||||
autoSize |
Type: booleanDefault: falseKeep the original video aspect ratio and automatically zoom |
Demo | ||||||||||||||
loop |
Type: booleanDefault: falseAutomatic loop playback |
Demo | ||||||||||||||
playbackRate |
Type: booleanDefault: falseWhether to show playback rate controller in the contextmenu |
Demo | ||||||||||||||
aspectRatio |
Type: booleanDefault: falseWhether to show aspect ratio controller in the contextmenu |
Demo | ||||||||||||||
screenshot |
Type: booleanDefault: falseWhether to show screenshot controller in the bottom |
Demo | ||||||||||||||
setting |
Type: booleanDefault: falseWhether to show setting controller in the bottom |
Demo | ||||||||||||||
pip |
Type: booleanDefault: falseWhether to show pip controller in the bottom |
Demo | ||||||||||||||
fullscreen |
Type: booleanDefault: falseWhether to show window fullscreen controller in the bottom |
Demo | ||||||||||||||
fullscreenWeb |
Type: booleanDefault: falseWhether to show web page fullscreen controller in the bottom |
Demo | ||||||||||||||
hotkey |
Type: booleanDefault: trueWhether to use hotkey
|
Demo | ||||||||||||||
mutex |
Type: booleanDefault: truePlayer mutually exclusive, only one player can play at a time |
Demo | ||||||||||||||
lang |
Type: stringDefault: navigator.language.toLowerCase()Default display language: en, zh-cn, zh-tw
|
Demo | ||||||||||||||
theme |
Type: stringDefault: #f00Default theme color |
Demo | ||||||||||||||
subtitle |
Type: objectDefault: {}Custom subtitle
|
Demo | ||||||||||||||
thumbnails |
Type: objectDefault: {}Custom thumbnails in the progress bar with lazy load
|
Demo | ||||||||||||||
moreVideoAttr |
Type: objectDefault: {'controls': false,'preload': 'auto'}More video Attributes, these properties will be written directly to the video element |
Demo | ||||||||||||||
quality |
Type: arrayDefault: []Custom quality, The type of quality is an object
|
Demo | ||||||||||||||
highlight |
Type: arrayDefault: []Custom highlight, The type of highlight is an object
|
Demo | ||||||||||||||
layers |
Type: arrayDefault: []Custom layer, The type of layer is an object or function
|
Demo | ||||||||||||||
contextmenu |
Type: arrayDefault: []Custom contextmenu, The type of layer is an object or function
|
Demo | ||||||||||||||
controls |
Type: arrayDefault: []Custom controls, The type of controls is an object
|
Demo |
API
Example
var art = new Artplayer({
container: '.artplayer-app',
url: 'path/to/video.mp4'
});
Instance properties and methods
| property / method | description | example | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
destroy |
Type: functionParameter: true/falseDestroy instance, and whether to remove dom |
Demo | |||||||||||||||
player |
Type: objectDestroy instance, and whether to remove dom
|
null |
|||||||||||||||
art.player.volume |
Get and set the player volume | Demo | |||||||||||||||
art.player.currentTime |
Get player current time | Demo | |||||||||||||||
art.player.duration |
Get player duration in seconds | Demo | |||||||||||||||
art.player.switch() |
Switch video url, use in the case of similar switching quality You can also pass a name to the url for display, like: art.player.switch(url, name)
|
Demo | |||||||||||||||
art.player.playbackRate()art.player.playbackRateStateart.player.playbackRateRemove()art.player.playbackRateReset()
|
Manage the playback rate, at intervals of 0.1 to 10 | Demo | |||||||||||||||
art.player.aspectRatio()art.player.aspectRatioStateart.player.aspectRatioRemove()art.player.aspectRatioReset()
|
Demo | ||||||||||||||||
art.player.screenshot() |
Demo | ||||||||||||||||
art.player.fullscreenStateart.player.fullscreenEnabled()art.player.fullscreenExit()art.player.fullscreenToggle()
|
Demo | ||||||||||||||||
art.player.fullscreenWebStateart.player.fullscreenWebEnabled()art.player.fullscreenWebExit()art.player.fullscreenWebToggle()
|
Demo | ||||||||||||||||
art.player.pipStateart.player.pipDraggieart.player.pipEnabled()art.player.pipExit()art.player.pipToggle()
|
Demo | ||||||||||||||||
art.player.loaded |
Demo | ||||||||||||||||
art.player.played |
Demo | ||||||||||||||||
art.player.autoSize()art.player.autoSizeStateart.player.autoSizeRemove()
|
Demo | ||||||||||||||||
art.player.flip()art.player.flipStateart.player.flipRemove() |
Demo |
Class static properties and methods
| property / method | description | example |
|---|---|---|
Artplayer.version |
Version Information | |
Artplayer.config |
Configuration information | |
Artplayer.utils |
Common utils | |
Artplayer.DEFAULTS |
Default configuration | |
Artplayer.use() |
Function to load plugin |
Listening event
Issue
Contributors
License
MIT © Harvey Zack
Languages
JavaScript
89%
Less
9.8%
TypeScript
0.7%
Vue
0.3%
HTML
0.1%