import{_ as n,c as l,o as p,V as s,z as a}from"./chunks/framework.5c8808ab.js";const Ls=JSON.parse('{"title":"Instance Properties","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/property.md","filePath":"en/advanced/property.md","lastUpdated":1700976201000}'),o={name:"en/advanced/property.md"},e=s('
Here, instance properties refer to the primary properties mounted on the instance, which are quite commonly used.
play FunctionPlay video
',5),r=a("div",{className:"run-code"},"▶ Run Code",-1),t=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
muted: true,
});
art.on('ready', () => {
art.play();
});pause FunctionPause video
`,4),c=a("div",{className:"run-code"},"▶ Run Code",-1),D=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
muted: true,
});
art.on('ready', () => {
art.play();
setTimeout(() => {
art.pause();
}, 3000);
});toggle FunctionToggle the play and pause state of the video
`,4),y=a("div",{className:"run-code"},"▶ Run Code",-1),F=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
muted: true,
});
art.on('ready', () => {
art.toggle();
setTimeout(() => {
art.toggle();
}, 3000);
});destroy FunctionBooleanDestroy the player. Accepts a parameter indicating whether to remove the player's html after destruction, which defaults to true
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.destroy();
});seek SetterNumberJump to a specific time in the video, in seconds.
`,4),C=a("div",{className:"run-code"},"▶ Run Code",-1),d=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.seek = 5;
});forward SetterNumberFast forward the video time, in seconds.
`,4),u=a("div",{className:"run-code"},"▶ Run Code",-1),b=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.forward = 5;
});backward SetterNumberVideo rewind time in seconds
`,4),m=a("div",{className:"run-code"},"▶ Run Code",-1),h=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.seek = 5;
setTimeout(() => {
art.backward = 2;
}, 3000);
});volume Setter/GetterNumberSets and gets the video volume, which ranges from [0, 1]
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.volume);
art.volume = 0.5;
console.info(art.volume);
});url Setter/GetterStringSet and retrieve the video address
`,4),v=a("div",{className:"run-code"},"▶ Run Code",-1),T=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.url = '/assets/sample/video.mp4?t=0';
});switch SetterStringSet the video address, which is similar to art.url, but performs some optimization operations
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.seek = 10;
setTimeout(() => {
art.switch = '/assets/sample/video.mp4?t=0';
}, 3000);
});switchUrl FunctionStringSet the video address, similar to setting art.url, but some optimization operations will be executed.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.seek = 10;
setTimeout(() => {
art.switchUrl('/assets/sample/video.mp4?t=0');
}, 3000);
});Warning
art.switch and art.switchUrl have the same functionality. However, the art.switchUrl method will return a Promise. When it resolves, it indicates that the new address can be played; when it rejects, it indicates there was an error loading the new address.
switchQuality FunctionStringSet video quality address, similar to art.switchUrl, but it will carry over the previous playback progress.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.seek = 10;
setTimeout(() => {
art.switchQuality('/assets/sample/video.mp4?t=0');
}, 3000);
});muted Setter/GetterBooleanSet and get whether the video is muted.
`,4),q=a("div",{className:"run-code"},"▶ Run Code",-1),R=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.muted);
art.muted = true;
console.info(art.muted);
});currentTime Setter/GetterNumberSet and get the current time of the video. Setting the time is similar to seek, but it does not trigger additional events.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.currentTime);
art.currentTime = 5;
console.info(art.currentTime);
});duration GetterGet the video duration
`,4),I=a("div",{className:"run-code"},"▶ Run Code",-1),j=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.duration);
});Note
Some videos do not have a duration, such as videos that are being live streamed or videos that have not been fully decoded, in which case the obtained duration will be 0
screenshot FunctionDownload a screenshot of the current video frame
`,5),x=a("div",{className:"run-code"},"▶ Run Code",-1),G=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.screenshot();
});getDataURL FunctionGets the base64 address of the screenshot of the current video frame, which returns a Promise.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', async () => {
const url = await art.getDataURL();
console.info(url)
});getBlobUrl FunctionGets the blob address of the screenshot of the current video frame, which returns a Promise.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', async () => {
const url = await art.getBlobUrl();
console.info(url);
});fullscreen Setter/GetterBooleanSet and get the player window fullscreen
`,4),H=a("div",{className:"run-code"},"▶ Run Code",-1),L=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
controls: [
{
position: 'right',
html: 'Fullscreen Switch',
click: function () {
art.fullscreen = !art.fullscreen;
},
},
],
});Note
Due to browser security mechanisms, before triggering the window to fullscreen, the page must have had an interaction (e.g. user clicked on the page).
fullscreenWeb Setter/GetterBooleanSet and get the player web page full screen
`,5),O=a("div",{className:"run-code"},"▶ Run Code",-1),$=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
fullscreenWeb: true,
});
art.on('ready', () => {
art.fullscreenWeb = true;
setTimeout(() => {
art.fullscreenWeb = false;
}, 3000);
});pip Setter/GetterBooleanSet and get the player picture-in-picture mode
`,4),J=a("div",{className:"run-code"},"▶ Run Code",-1),M=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
controls: [
{
position: 'right',
html: 'PIP',
click: function () {
art.pip = !art.pip;
},
},
],
});Warning
Due to browser security mechanisms, user interaction (e.g., a user click on the page) must occur before triggering picture-in-picture.
poster Setter/GetterStringSet and get the video poster, the poster effect is visible only before the video starts playing.
`,5),Q=a("div",{className:"run-code"},"▶ Run Code",-1),K=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
poster: '/assets/sample/poster.jpg',
});
art.on('ready', () => {
console.info(art.poster);
art.poster = '/assets/sample/poster.jpg?t=0';
console.info(art.poster);
});mini Setter/GetterBooleanSet and get the player's mini mode
`,4),X=a("div",{className:"run-code"},"▶ Run Code",-1),Y=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.mini = true;
});playing GetterBooleanGet whether the video is currently playing
`,4),Z=a("div",{className:"run-code"},"▶ Run Code",-1),ss=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
muted: true,
});
art.on('ready', () => {
console.info(art.playing);
});autoSize FunctionSets whether the video should auto adjust its size
`,4),as=a("div",{className:"run-code"},"▶ Run Code",-1),ns=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.autoSize();
});rect GetterGets the size and position information of the player
`,4),ls=a("div",{className:"run-code"},"▶ Run Code",-1),ps=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(JSON.stringify(art.rect));
});Warning
The size and coordinates are obtained via getBoundingClientRect
flip Setter/GetterStringSet and get the player flip, supports normal, horizontal, vertical
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.flip);
art.flip = 'horizontal';
console.info(art.flip);
});playbackRate Setter/GetterNumber Set and get the playback speed of the playervar art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.playbackRate);
art.playbackRate = 2;
console.info(art.playbackRate);
});aspectRatio Setter/GetterStringSet and get the aspect ratio of the player
`,4),cs=a("div",{className:"run-code"},"▶ Run Code",-1),Ds=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.aspectRatio);
art.aspectRatio = '16:9';
console.info(art.aspectRatio);
});autoHeight FunctionWhen the container has only width, this attribute can automatically calculate and set the height of the video
`,4),ys=a("div",{className:"run-code"},"▶ Run Code",-1),Fs=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.autoHeight();
});
art.on('resize', () => {
art.autoHeight();
});Warning
When your container has only width but you do not know the exact height, this property is very useful as it can automatically calculate the video's height, but you need to make sure when to set this property.
attr FunctionStringDynamically get and set the attributes of the video element
`,5),is=a("div",{className:"run-code"},"▶ Run Code",-1),As=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.attr('playsInline'));
art.attr('playsInline', true);
console.info(art.attr('playsInline'));
});type Setter/GetterStringDynamically get and set the video type
`,4),Cs=a("div",{className:"run-code"},"▶ Run Code",-1),ds=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.type);
art.type = 'm3u8';
console.info(art.type);
});theme Setter/GetterStringDynamically get and set the player's theme color
`,4),us=a("div",{className:"run-code"},"▶ Run Code",-1),bs=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.theme);
art.theme = '#000';
console.info(art.theme);
});airplay FunctionActivate airplay
`,4),ms=a("div",{className:"run-code"},"▶ Run Code",-1),hs=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
controls: [
{
position: 'right',
html: 'AirPlay',
click: function () {
art.airplay();
},
},
],
});loaded GetterThe proportion of the video that is cached, ranging from [0, 1], commonly used with the video:timeupdate event.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('video:timeupdate', () => {
console.info(art.loaded);
});played GetterThe proportion of the video that has been played, ranging from [0, 1], commonly used with the video:timeupdate event.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('video:timeupdate', () => {
console.info(art.played);
});proxy FunctionA proxy function for DOM events, which essentially proxies addEventListener and removeEventListener. When using proxy to handle events, the event will automatically be destroyed when the player is destroyed.
var container = document.querySelector('.artplayer-app');
var art = new Artplayer({
container: container,
url: '/assets/sample/video.mp4',
});
art.proxy(container, 'click', event => {
console.info(event);
});Tip
If you need some DOM events to exist only during the lifespan of the player, it is highly recommended to use this function to avoid causing memory leaks.
query FunctionDOM query function, similar to document.querySelector, but the object being queried is limited within the current player, which can prevent errors due to having the same class name.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
console.info(art.query('.art-video'));video ElementA shortcut to return the video element of the player.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
console.info(art.video);cssVar FunctionDynamically getting or setting css variables
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.log(art.cssVar('--art-theme'));
art.cssVar('--art-theme', 'green');
console.log(art.cssVar('--art-theme'));
});quality SetterArrayDynamically setting the list of qualities
`,4),Ns=a("div",{className:"run-code"},"▶ Run Code",-1),Vs=s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
quality: [
{
default: true,
html: 'SD 480P',
url: '/assets/sample/video.mp4',
},
{
html: 'HD 720P',
url: '/assets/sample/video.mp4',
},
],
});
art.on('ready', () => {
setTimeout(() => {
art.quality = [
{
default: true,
html: '1080P',
url: '/assets/sample/video.mp4',
},
{
html: '4K',
url: '/assets/sample/video.mp4',
},
];
}, 3000);
})