跳到主要内容

Dealing with Composables

import { defineStore, skipHydrate } from 'pinia'
import { useMediaControls } from '@vueuse/core'

export const useVideoPlayer = defineStore('video', () => {
// we won't expose (return) this element directly
const videoElement = ref<HTMLVideoElement>()
const src = ref('/data/video.mp4')
const { playing, volume, currentTime, togglePictureInPicture } =
useMediaControls(videoElement, { src })

function loadVideo(element: HTMLVideoElement, src: string) {
videoElement.value = element
src.value = src
}

return {
src,
playing,
volume,
currentTime,

loadVideo,
togglePictureInPicture,
}
})