import{_ as l,o as e,c as p,j as s,a,ak as i}from"./chunks/framework.xxfEszSJ.js";const y=JSON.parse('{"title":"Instance Events","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/event.md","filePath":"en/advanced/event.md","lastUpdated":1764426402000}'),h={name:"en/advanced/event.md"};function t(k,n,r,E,d,g){return e(),p("div",null,n[0]||(n[0]=[s("h1",{id:"instance-events",tabindex:"-1"},[a("Instance Events "),s("a",{class:"header-anchor",href:"#instance-events","aria-label":'Permalink to "Instance Events"'},"")],-1),s("p",null,[a("Player events are divided into two types: "),s("code",null,"native events"),a(" (prefixed with "),s("code",null,"video:"),a(") and "),s("code",null,"custom events"),a(".")],-1),s("p",null,"Listen to an event:",-1),s("div",{className:"run-code"},"▶ Run Code",-1),i(`
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('video:canplay', () => {
console.info('video:canplay');
});Listen to an event only once:
`,2),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.once('video:canplay', () => {
console.info('video:canplay');
});Manually trigger an event:
`,2),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.emit('focus');Remove an event listener:
`,2),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
const onReady = () => {
console.info('ready');
art.off('ready', onReady);
}
art.on('ready', onReady);For a complete list of events, please refer to:
ready Triggered when the player is ready for the first time
`,4),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
console.info('ready');
});restart Triggered when the player switches URL and becomes playable
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.url = '/assets/sample/video.mp4'
});
art.on('restart', (url) => {
console.info('restart', url);
});pause Triggered when the player is paused
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('pause', () => {
console.info('pause');
});play Triggered when the player starts playing
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('play', () => {
console.info('play');
});hotkey Triggered when a hotkey is pressed on the player
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('hotkey', (event) => {
console.info('hotkey', event);
});destroy Triggered when the player is destroyed
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.destroy();
});
art.on('destroy', () => {
console.info('destroy');
});focus Triggered when the player gains focus
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('focus', (event) => {
console.info('focus', event);
});blur Triggered when the player loses focus
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('blur', (event) => {
console.info('blur', event);
});dblclick Triggered when the player is double-clicked
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('dblclick', (event) => {
console.info('dblclick', event);
});click Triggered when the player is clicked
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('click', (event) => {
console.info('click', event);
});error Triggered when an error occurs while loading the video
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/404.mp4',
});
art.on('error', (error, reconnectTime) => {
console.info(error, reconnectTime);
});
## \`hover\`
Triggered when the mouse enters or leaves the player
<div className="run-code">▶ Run Code</div>
\`\`\`js{6}
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('hover', (state, event) => {
console.info('hover', state, event);
});mousemove Triggered when the mouse moves over the player
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('mousemove', (event) => {
console.info('mousemove', event);
});resize Triggered when the player's dimensions change
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('resize', () => {
console.info('resize');
});view Triggered when the player enters or leaves the viewport
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('view', (state) => {
console.info('view', state);
});lock Triggered when the lock state changes on mobile devices
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
lock: true,
});
art.on('lock', (state) => {
console.info('lock', state);
});aspectRatio Triggered when the player's aspect ratio changes
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
aspectRatio: true,
setting: true,
});
art.on('aspectRatio', (aspectRatio) => {
console.info('aspectRatio', aspectRatio);
});autoHeight Triggered when the player automatically adjusts its height
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.autoHeight();
});
art.on('autoHeight', (height) => {
console.info('autoHeight', height);
});autoSize Triggered when the player automatically adjusts its size
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
autoSize: true,
});
art.on('autoSize', () => {
console.info('autoSize');
});flip Triggered when the player is flipped
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
flip: true,
setting: true,
});
art.on('flip', (flip) => {
console.info('flip', flip);
});fullscreen Triggered when the player enters or exits window fullscreen mode
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
fullscreen: true,
});
art.on('fullscreen', (state) => {
console.info('fullscreen', state);
});fullscreenError Triggered when a window fullscreen error occurs
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.fullscreen = true;
});
art.on('fullscreenError', (event) => {
console.info('fullscreenError', event);
});fullscreenWeb Triggered when the player enters or exits web fullscreen mode
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
fullscreenWeb: true,
});
art.on('fullscreenWeb', (state) => {
console.info('fullscreenWeb', state);
});mini Triggered when the player enters or exits mini mode
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('ready', () => {
art.mini = true;
});
art.on('mini', (state) => {
console.info('mini', state);
});pip Triggered when the player enters or exits picture-in-picture mode
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
pip: true,
});
art.on('pip', (state) => {
console.info('pip', state);
});
## \`screenshot\`
Triggered when the player captures a screenshot
<div className="run-code">▶ Run Code</div>
\`\`\`js{7}
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
screenshot: true,
});
art.on('screenshot', (dataUri) => {
console.info('screenshot', dataUri);
});seek Triggered when the player performs a time seek
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('seek', (currentTime) => {
console.info('seek', currentTime);
});subtitleOffset Triggered when subtitle offset changes in the player
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
subtitleOffset: true,
subtitle: {
url: '/assets/sample/subtitle.srt',
},
setting: true,
});
art.on('subtitleOffset', (offset) => {
console.info('subtitleOffset', offset);
});subtitleBeforeUpdate Triggered before subtitles are updated
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
subtitle: {
url: '/assets/sample/subtitle.srt',
},
});
art.on('subtitleBeforeUpdate', (cues) => {
console.info('subtitleBeforeUpdate', cues);
});subtitleAfterUpdate Triggered after subtitles are updated
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
subtitle: {
url: '/assets/sample/subtitle.srt',
},
});
art.on('subtitleAfterUpdate', (cues) => {
console.info('subtitleAfterUpdate', cues);
});subtitleLoad Triggered when subtitles are loaded
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
subtitle: {
url: '/assets/sample/subtitle.srt',
},
});
art.on('subtitleLoad', (option, cues) => {
console.info('subtitleLoad', cues, option);
});info Triggered when the info panel is shown or hidden
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('info', (state) => {
console.log(state);
});layer Triggered when custom layers are shown or hidden
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('layer', (state) => {
console.log(state);
});loading Triggered when the loader is shown or hidden
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('loading', (state) => {
console.log(state);
});mask Triggered when the mask layer is shown or hidden
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('mask', (state) => {
console.log(state);
});subtitle Triggered when the subtitle layer is shown or hidden
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('subtitle', (state) => {
console.log(state);
});contextmenu Triggered when the context menu is shown or hidden
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('contextmenu', (state) => {
console.log(state);
});control Triggered when the controls are shown or hidden
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('control', (state) => {
console.log(state);
});setting Triggered when the settings panel is shown or hidden
`,3),s("div",{className:"run-code"},"▶ Run Code",-1),i(`var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
setting: true,
});
art.on('setting', (state) => {
console.log(state);
});
## \`muted\`
Triggered when the mute state changes
<div className="run-code">▶ Run Code</div>
\`\`\`js{6}
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
});
art.on('muted', (state) => {
console.log(state);
});keydown Listens for keydown events from the document
var art = new Artplayer({\n container: '.artplayer-app',\n url: '/assets/sample/video.mp4',\n});\n\nart.on('keydown', (event) => {\n console.log(event.code);\n});video:canplay The browser can start playing the media, but estimates there isn't enough data to play through to the end without having to stop for further buffering
video:canplaythrough The browser estimates it can play the media through to the end without stopping to buffer content
video:complete OfflineAudioContext rendering is complete
video:durationchange Triggered when the value of the duration property changes
video:emptied The media has become empty; for example, this event is sent when the media has already been loaded (or partially loaded), and the load() method is called to reload it
video:ended Playback has stopped because the media has reached its end point
video:error An error occurred while fetching media data, or the resource type is not a supported media format
video:loadeddata The first frame of the media has finished loading
video:loadedmetadata Metadata has been loaded
video:pause Playback has been paused
video:play Playback has begun
video:playing Playback is ready to start after having been paused or delayed due to lack of data
video:progress Periodically triggered while the browser is loading the resource
video:ratechange The playback rate has changed
video:seeked A seek operation has completed
video:seeking A seek operation has begun
video:stalled The user agent is trying to fetch media data, but data is unexpectedly not forthcoming
video:suspend Media data loading has been suspended
video:timeupdate The time indicated by the currentTime attribute has been updated
video:volumechange The volume has changed
video:waiting Playback has stopped due to temporary lack of data
',43)]))}const o=l(h,[["render",t]]);export{y as __pageData,o as default};