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.