Freecaster video player integration for vue.
pnpm install @plutotcool/vue-freecaster
The plugin loads the required freecaster scripts and globally
registers the FreecasterPlayer
component in your vue app.
import Vue from 'vue';
import { FreecasterPlugin } from '@plutotcool/vue-freecaster'
Vue.use(FreecasterPlugin)
The usePlayer
composable provide a reactive freecaster player instance
attached to an element ref.
<script setup lang="ts">
import { usePlayer } from '@plutotcool/vue-freecaster'
const { element, attributes, player } = usePlayer({
options: {
videoId: '...'
}
})
</script>
<template>
<div ref="element" v-bind="attributes"/>
</template>
The FreecasterPlayer
component is a wrapper around the usePlayer
composable.
It also provides models and slot props for the player state.
<script setup lang="ts">
import { FreecasterPlayer, type Player } from '@plutotcool/vue-freecaster'
const player = shallowRef<Player>()
const muted = ref(false)
const paused = ref(false)
const volume = ref(1)
const currentTime = ref(0)
const readyState = ref(0)
const fullscreen = ref(false)
</script>
<template>
<FreecasterPlayer
video-id="..."
v-model="player"
v-model:muted="muted"
v-model:paused="paused"
v-model:volume="volume"
v-model:current-time="currentTime"
v-model:ready-state="readyState"
v-model:fullscreen="fullscreen"
/>
</template>
<script setup lang="ts">
import { FreecasterPlayer } from '@plutotcool/vue-freecaster'
</script>
<template>
<FreecasterPlayer
video-id="..."
#default="{
player,
muted,
paused,
volume,
currentTime,
readyState,
fullscreen
}"
>
<!-- ... !-->
</FreecasterPlayer>
</template>