import{_ as n,o as l,c as e,ak as s,j as i}from"./chunks/framework.xxfEszSJ.js";const g=JSON.parse('{"title":"Instance Properties","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/property.md","filePath":"en/advanced/property.md","lastUpdated":1772946913000}'),p={name:"en/advanced/property.md"};function h(t,a,k,r,E,d){return l(),e("div",null,a[0]||(a[0]=[s('
Here, Instance Properties refer to the first-level properties mounted on the instance, which are commonly used.
play FunctionPlay the video.
',5),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
muted: true,
});
art.on('ready', () => {
art.play();
});pause FunctionPause the video.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),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 video play and pause.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),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 also remove the player's html after destruction. Defaults to true.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.destroy();
});reset FunctionReset the player's video element: removes the current src and calls load() once. Commonly used to manually release media resources or reinitialize the video tag in single-page applications.
`,5),i("div",{className:"run-code"},"▶ Run Code",-1),s(`Note: The global configuration
Artplayer.REMOVE_SRC_WHEN_DESTROYwill also automatically execute similar logic whendestroy()is called.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
// Only reset the video, do not remove the interface
art.reset();
});seek SetterNumberSeek to a specific time in the video, in seconds.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),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),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.forward = 5;
});backward SetterNumberRewind the video time, in seconds.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),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/GetterNumberSet and get the video volume, range: [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 get the video URL.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),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 URL. Similar to art.url when setting, 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 URL. Similar to art.url when setting, 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.switchUrl('/assets/sample/video.mp4?t=0');
}, 3000);
});Note
art.switch and art.switchUrl have the same functionality, but the art.switchUrl method returns a Promise. It resolves when the new URL is playable and rejects when the new URL fails to load.
switchQuality FunctionStringSets the video quality URL. Similar to art.switchUrl, but retains 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/GetterBooleanSets or gets whether the video is muted.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),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/GetterNumberSets or gets the current playback 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 GetterGets the duration of the video.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.duration);
});Note
Some videos may not have a duration, such as live streams or videos that have not been fully decoded. In such cases, the obtained duration will be 0.
screenshot FunctionDownloads a screenshot of the current video frame. An optional parameter specifies the screenshot filename.
`,5),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.screenshot('your-name');
});getDataURL FunctionGets the base64 URL of a screenshot of the current video frame. 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 URL of a screenshot of the current video frame. 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/GetterBooleanSets or gets the player's window fullscreen state.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),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, a user interaction (e.g., a click on the page) must occur before triggering window fullscreen.
fullscreenWeb Setter/GetterBooleanSets or gets the player's web page fullscreen state.
`,5),i("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/GetterBooleanSets or gets the player's Picture-in-Picture (PIP) mode.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
controls: [
{
position: 'right',
html: 'PIP',
click: function () {
art.pip = !art.pip;
},
},
],
});Note
Due to browser security mechanisms, a user interaction (e.g., a click on the page) must occur before triggering Picture-in-Picture.
poster Setter/GetterStringSets and gets the video poster. The poster effect is only visible before the video starts playing.
`,5),i("div",{className:"run-code"},"▶ Run Code",-1),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/GetterBooleanSets and gets the player's mini mode.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.mini = true;
});playing GetterBooleanGets whether the video is currently playing.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
muted: true,
});
art.on('ready', () => {
console.info(art.playing);
});state Setter/GetterStringGets or sets the player's current state. Supported values: standard (normal), mini (mini window), pip (picture-in-picture), fullscreen (window fullscreen), fullscreenWeb (webpage fullscreen).
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.state); // Default is 'standard'
art.state = 'mini';
});autoSize FunctionSets whether the video adapts its size automatically.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.autoSize();
});rect GetterGets the player's dimensions and coordinate information.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),s('var art = new Artplayer({\n container: '.artplayer-app',\n url: '/assets/sample/video.mp4',\n});\n\nart.on('ready', () => {\n console.info(JSON.stringify(art.rect));\n});Note
The dimension and coordinate information is obtained via getBoundingClientRect.
bottom / top / left / right / x / y / width / height GetterThese properties provide quick access to rect:
bottom, top, left, right, x, y: Correspond to the fields of the same name in DOMRect.width, height: The player's current visible width and height.var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info(art.width, art.height, art.left, art.top);
});flip Setter/GetterStringSets and gets the player's flip state. Supported values: 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/GetterNumberSets and gets the player's playback speed.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var 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/GetterStringSets and gets the player's aspect ratio.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),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 only has a defined width, this property can automatically calculate and set the video's height.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.autoHeight();
});
art.on('resize', () => {
art.autoHeight();
});Note
This property is useful when your container has only a width but the exact height is unknown. It can automatically calculate the video height, but you need to determine the timing for setting this property.
attr FunctionStringDynamically get and set attributes of the video element.
`,5),i("div",{className:"run-code"},"▶ Run Code",-1),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),i("div",{className:"run-code"},"▶ Run Code",-1),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),i("div",{className:"run-code"},"▶ Run Code",-1),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 FunctionInitiate AirPlay.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),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 video buffered, ranging from [0, 1]. Often 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);
});loadedTime GetterThe buffered media duration in seconds. Typically used alongside loaded to display detailed buffering progress.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('video:timeupdate', () => {
console.info(art.loadedTime);
});played GetterThe proportion of video played, ranging from [0, 1]. Often 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, essentially proxying addEventListener and removeEventListener. When using proxy to handle events, the event is automatically cleaned up 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);
});Note
If you need certain DOM events to exist only for the player's lifecycle, it is strongly recommended to use this function to avoid memory leaks.
query FunctionA DOM query function, similar to document.querySelector, but the search is scoped to the current player, preventing errors with duplicate class names.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
console.info(art.query('.art-video'));video ElementQuickly returns the player's video element.
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
console.info(art.video);cssVar FunctionDynamically get or set 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 set the quality list.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),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);
})thumbnails Setter/GetterObjectDynamically set thumbnails.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.thumbnails = {
url: '/assets/sample/thumbnails.png',
number: 60,
column: 10,
};
});subtitleOffset Setter/GetterNumberDynamically set subtitle offset.
`,4),i("div",{className:"run-code"},"▶ Run Code",-1),s(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
subtitle: {
url: '/assets/sample/subtitle.srt',
},
});
art.on('ready', () => {
art.subtitleOffset = 1;
});