fix: enforce frame-based positioning across all video playback

Core Principle: Frame is the only standard

Changes:
- VideoPlayer: Add startFrame/endFrame props
- VideoPlayer: Use frame parameters in simple playback path
- SearchView: Remove frame/time conversion (stop using fps = 24)
- PeopleView: Pass frames directly instead of time
- PersonDetailView: Pass frames directly instead of time

All video streams now use startFrame/endFrame API parameters.
Time conversion only happens in VideoPlayer internals for UI display.

Ref: frame-based positioning standards research
This commit is contained in:
2026-07-24 21:17:11 +08:00
parent 2af8ffaf93
commit 1fd6312f7e
4 changed files with 15 additions and 11 deletions

View File

@@ -805,11 +805,8 @@ function formatTime(sec: number): string {
function playVideo(r: any) {
const sf = r.start_frame || 0
const ef = r.end_frame || sf + 1
const fps = 24
currentVideo.value = {
fileUuid: r.file_uuid,
startTime: sf / fps,
endTime: ef / fps,
startFrame: sf,
endFrame: ef,
title: r.summary?.slice(0, 60) || r.file_name || 'Video'