feat: fix clouds functions and heygen
This commit is contained in:
@@ -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) => {
|
||||
|
||||
Reference in New Issue
Block a user