123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- import { defineStore } from "pinia";
- export const useViewYoutubeVideoStore = ({
- modalUuid
- }: {
- modalUuid: string;
- }) =>
- defineStore(`viewYoutubeVideo-${modalUuid}`, {
- state: (): {
- video: {
- _id: string;
- youtubeId: string;
- title: string;
- author: string;
- duration: number;
- uploadedAt?: Date;
- };
- player: {
- error: boolean;
- errorMessage: string;
- player: null;
- paused: boolean;
- playerReady: boolean;
- autoPlayed: boolean;
- duration: string;
- currentTime: number;
- playbackRate: number;
- videoNote: string;
- volume: number;
- muted: boolean;
- showRateDropdown: boolean;
- };
- } => ({
- video: {
- _id: null,
- youtubeId: null,
- title: null,
- author: null,
- duration: 0
- },
- player: {
- error: false,
- errorMessage: "",
- player: null,
- paused: true,
- playerReady: false,
- autoPlayed: false,
- duration: "0.000",
- currentTime: 0,
- playbackRate: 1,
- videoNote: "",
- volume: 0,
- muted: false,
- showRateDropdown: false
- }
- }),
- actions: {
- viewYoutubeVideo(video) {
- this.video = video;
- },
- updatePlayer(player) {
- this.player = Object.assign(this.player, player);
- },
- stopVideo() {
- if (this.player.player && this.player.player.pauseVideo) {
- this.player.player.pauseVideo();
- this.player.player.seekTo(0);
- }
- },
- loadVideoById(id) {
- this.player.player.loadVideoById(id);
- },
- pauseVideo(status: boolean) {
- if (
- (this.player.player && this.player.player.pauseVideo) ||
- this.player.playVideo
- ) {
- if (status) this.player.player.pauseVideo();
- else this.player.player.playVideo();
- }
- this.player.paused = status;
- },
- setPlaybackRate(rate?: number) {
- if (typeof rate === "number") {
- this.player.playbackRate = rate;
- this.player.player.setPlaybackRate(rate);
- } else if (
- this.player.player.getPlaybackRate() !== undefined &&
- this.player.playbackRate !==
- this.player.player.getPlaybackRate()
- ) {
- this.player.player.setPlaybackRate(
- this.player.playbackRate
- );
- this.player.playbackRate =
- this.player.player.getPlaybackRate();
- }
- }
- }
- })();
|