Skip to content

API Reference ​

Props ​

PropTypeDefaultNotes
urlstringrequiredStream or file URL
isLivebooleantrueLive streaming mode
hasAudiobooleantrueParse audio track
isMutebooleantrueStart muted
stretchbooleanfalseStretch video to fill
posterstringundefinedPoster image
bufferTimenumber0.1Buffer duration in seconds
loadTimeOutnumberundefinedLoad timeout in seconds
loadTimeReplaynumberundefinedReconnection attempts (-1 for infinite)
MSEbooleanfalseMSE decoding mode
WCSbooleanfalseWCS decoding mode
WASMbooleanfalseWASM decoding mode
WASMSIMDbooleantrueWASM SIMD mode
gpuDecoderbooleanundefinedHardware decoding
webGPUbooleanundefinedWebGPU rendering
canvasRenderbooleanundefinedCanvas rendering
debugbooleanfalseDebug mode
noSignalTextstring''No signal text
classstring''Custom class
styleCSSProperties{}Custom styles

Emits ​

EventPayloadDescription
play-Fired when playback starts
pause-Fired when playback pauses
erroranyFired on player error
timeout-Fired on load timeout
liveEnd-Fired when live stream ends
videoInfoanyVideo metadata info
audioInfoanyAudio metadata info
timestampsnumberCurrent playback time
kBpsnumberCurrent network speed (KB/s)
playerReadyEasyPlayerProPlayer instance ready

Exposed methods ​

ts
interface EasyPlayerInstance {
  getPlayer(): EasyPlayerPro | null;
  play(url: string): void;
  playback(url: string): void;
  pause(): void;
  screenshot(
    filename?: string,
    format?: 'jpeg' | 'png' | 'webp',
    quality?: number,
    type?: 'base64' | 'blob' | 'download',
  ): Blob | string | undefined;
  setFullscreen(): void;
  exitFullscreen(): void;
  setMute(mute: boolean): void;
  destroy(): void;
}

Usage Example ​

vue
<script setup lang="ts">
import { ref } from 'vue';
import { EasyPlayer } from 'easyplayer-vue3';
import type { EasyPlayerInstance } from 'easyplayer-vue3';

const playerRef = ref<EasyPlayerInstance | null>(null);
const videoUrl = 'https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8';

const handlePlay = () => {
  console.log('Player started playing');
};

const handleError = (error: any) => {
  console.error('Player error:', error);
};

const takeSnapshot = () => {
  if (playerRef.value) {
    const blob = playerRef.value.screenshot('snapshot', 'png', 0.92, 'download');
    console.log('Snapshot taken:', blob);
  }
};
</script>

<template>
  <EasyPlayer
    ref="playerRef"
    :url="videoUrl"
    :is-live="true"
    :is-mute="false"
    :has-audio="true"
    @play="handlePlay"
    @error="handleError"
  />

  <button @click="takeSnapshot">Take Snapshot</button>
</template>

Released under the MIT License.