feat: fix clouds functions and heygen

This commit is contained in:
2026-09-04 12:22:29 +02:00
parent 7bf913e014
commit efbb7994f2
12 changed files with 276 additions and 75 deletions
+17 -3
View File
@@ -297,6 +297,7 @@ const SongReady = () => {
onTogglePlayback={handleTogglePlayback}
projectId={projectId}
selectedProject={selectedProject}
fallbackDurationS={selectedProject?.musicDurations?.[index]}
/>
)}
contentContainerStyle={{ gap: 16, paddingBottom: gutters }}
@@ -346,6 +347,7 @@ const SongOptionCard = ({
onTogglePlayback,
projectId,
selectedProject,
fallbackDurationS,
}) => {
const trackTitle =
(Array.isArray(selectedProject?.musicTitles) ? selectedProject.musicTitles?.[index] : null) ||
@@ -360,9 +362,20 @@ const SongOptionCard = ({
metadata: { index, projectId },
})
const [progressInfo, setProgressInfo] = useState({ pos: 0, dur: 0 })
const fallbackDurationMs = Math.max(0, Math.round((Number(fallbackDurationS) || 0) * 1000))
const [progressInfo, setProgressInfo] = useState({
pos: 0,
dur: fallbackDurationMs,
})
const [isPlaying, setIsPlaying] = useState(false)
useEffect(() => {
if (!fallbackDurationMs) return
setProgressInfo((current) =>
current.dur ? current : { ...current, dur: fallbackDurationMs }
)
}, [fallbackDurationMs])
useEffect(() => {
registerPlayer(index, player)
return () => registerPlayer(index, null)
@@ -387,7 +400,8 @@ const SongOptionCard = ({
return undefined
}
const id = setInterval(() => {
const durationMs = Math.max(0, Math.round((Number(player.duration) || 0) * 1000))
const playerDurationMs = Math.max(0, Math.round((Number(player.duration) || 0) * 1000))
const durationMs = playerDurationMs || fallbackDurationMs
const positionMs = Math.max(0, Math.round((Number(player.currentTime) || 0) * 1000))
setProgressInfo((prev) => {
if (
@@ -407,7 +421,7 @@ const SongOptionCard = ({
})
}, 300)
return () => clearInterval(id)
}, [player])
}, [fallbackDurationMs, player])
const handleSeek = useCallback(
async (targetMs) => {