import { defineStore } from 'pinia' export const useVideoStore = defineStore('video', { state: () => ({ videos: [], selectedVideo: null, defaultPath: 'C:\\Users\\antoi\\Documents\\Work_Learn\\Stage-Rennes\\RepositoryFootballVision\\SportDETR\\data\\football\\raw', // defaultPath: '\\\\10.35.51.152\\Biomeca\\Projets\\25_EVA2PERF_M2_AntoineVerdon\\RepositoryFootballVision\\SportDETR\\data\\football\\raw', currentTime: 0, isPlaying: false, duration: 0, fps: 25, // FPS par défaut changé à 25 // Vidéo par défaut depuis les assets defaultVideo: null, isInitialized: false }), actions: { // Initialiser avec une vidéo par défaut si aucune n'est sélectionnée async initialize() { if (!this.isInitialized && !this.selectedVideo) { // Essayer de charger une vidéo par défaut depuis les assets try { const defaultVideoPath = require('@/assets/football.mp4') this.defaultVideo = { name: 'football', path: defaultVideoPath, type: 'video/mp4', isDefault: true } // Ne pas définir automatiquement comme selectedVideo, laisser l'utilisateur choisir } catch (error) { console.log('Aucune vidéo par défaut disponible dans les assets') } this.isInitialized = true } }, setVideos(videos) { this.videos = videos }, async setSelectedVideo(video) { this.selectedVideo = video }, setCurrentTime(time) { this.currentTime = time }, setIsPlaying(isPlaying) { this.isPlaying = isPlaying }, setDuration(duration) { this.duration = duration }, setFps(fps) { this.fps = fps console.log('FPS défini à:', fps) }, async loadVideosFromFolder() { // DÉSACTIVÉ - pas de chargement de dossier externe this.videos = [] return [] }, async loadVideoMetadata(videoPath) { return new Promise((resolve, reject) => { const tempVideo = document.createElement('video') tempVideo.src = videoPath tempVideo.crossOrigin = 'anonymous' tempVideo.addEventListener('loadedmetadata', () => { this.duration = tempVideo.duration resolve({ duration: tempVideo.duration, videoElement: tempVideo }) }) tempVideo.addEventListener('error', (error) => { console.error('Erreur lors du chargement de la vidéo:', error) reject(error) }) }) }, updateProgressBar(time) { this.currentTime = time this.emitTimeUpdate(time) }, emitTimeUpdate(time) { this.currentTime = time } } })