import React, { RefObject } from 'react'; import { Music } from 'lucide-react'; import { TimelineElement } from '../../types'; import type { BradlyPlayerRef } from '../../engine/player'; import { uploadMedia } from '../../utils/mediaUploader'; import { FileDropZone } from '../ui/FileDropZone'; import { getAudioDuration, durationToFrames } from '../../utils/audioMetadata'; interface AudioLayerPanelProps { activeLayerId: string; setTimelineElements: React.Dispatch>; timelineElements: TimelineElement[]; playerRef: RefObject; endFrameLimit?: number; } export const AudioLayerPanel: React.FC = ({ activeLayerId, setTimelineElements, timelineElements, playerRef, endFrameLimit = 150 }) => { return (

Capa de Audio

Añade o edita pistas de audio

{ const file = files[0]; if (!file || !playerRef.current) return; try { const result = await uploadMedia(file); const currentFrame = playerRef.current.getCurrentFrame() || 0; // Get real audio duration let endFrame = Math.min(endFrameLimit, currentFrame + 150); try { const dur = await getAudioDuration(result.url); endFrame = currentFrame + durationToFrames(dur); } catch {} setTimelineElements(prev => [...prev, { id: Date.now().toString(), layerId: activeLayerId, type: 'audio', content: result.url, startFrame: currentFrame, endFrame, x: 0, y: 0, originalFileName: result.originalName, }]); } catch (err) { console.error('Audio upload failed:', err); } }} />
); };