"use client" import { type TranscriptSegment } from "@/lib/api" interface Props { segments: TranscriptSegment[] loading?: boolean onSeek?: (sec: number) => void } function formatTs(t: number) { const m = Math.floor(t / 60) const s = Math.floor(t % 60) return `${m}:${s.toString().padStart(2, "0")}` } export function TranscriptPanel({ segments, loading, onSeek }: Props) { if (segments.length === 0) { return (
{loading ? "音频转写中…" : "转录将在抽帧后自动开始"}
) } return (
English ASR
中文翻译
{segments.map((seg) => (
onSeek?.(seg.start)} >
{formatTs(seg.start)} → {formatTs(seg.end)}
{seg.en}
 
{seg.zh || 翻译中…}
))}
) }