Fix video playback: calculate time from frame/fps when start_time/end_time not available
- Identity search returns start_frame/end_frame/fps instead of start_time/end_time - Calculate start_time = start_frame / fps, end_time = end_frame / fps - Apply same fix to universal search results
This commit is contained in:
@@ -471,13 +471,15 @@ async function semanticSearch() {
|
||||
const results = data.results || [];
|
||||
resultsHtml = results.map(i => {
|
||||
const textAttr = (i.text_content || '').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>');
|
||||
const startTime = i.start_time || (i.start_frame && i.fps ? i.start_frame / i.fps : 0);
|
||||
const endTime = i.end_time || (i.end_frame && i.fps ? i.end_frame / i.fps : startTime + 10);
|
||||
return `<div class="chunk-item clickable"
|
||||
data-file-uuid="${i.file_uuid}"
|
||||
data-start-time="${i.start_time || 0}"
|
||||
data-end-time="${i.end_time || (i.start_time || 0) + 10}"
|
||||
data-start-time="${startTime}"
|
||||
data-end-time="${endTime}"
|
||||
data-text="${textAttr}">
|
||||
<div style="font-weight: 600; color: #1e40af;">${i.name} (${i.source || 'unknown'})</div>
|
||||
<div class="chunk-time">${i.file_uuid} | ${(i.start_time || 0).toFixed(1)}s - ${(i.end_time || (i.start_time || 0) + 10).toFixed(1)}s</div>
|
||||
<div class="chunk-time">${i.file_uuid} | ${startTime.toFixed(1)}s - ${endTime.toFixed(1)}s</div>
|
||||
<div style="margin-top: 4px;">${i.text_content || '無內容'}</div>
|
||||
<button class="play-btn">▶ 播放片段</button>
|
||||
</div>`;
|
||||
@@ -494,12 +496,14 @@ async function semanticSearch() {
|
||||
const results = data.results || [];
|
||||
resultsHtml = results.map(r => {
|
||||
const textAttr = (r.text || '').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>');
|
||||
const startTime = r.start_time || (r.start_frame && r.fps ? r.start_frame / r.fps : 0);
|
||||
const endTime = r.end_time || (r.end_frame && r.fps ? r.end_frame / r.fps : startTime + 10);
|
||||
return `<div class="chunk-item clickable"
|
||||
data-file-uuid="${r.file_uuid}"
|
||||
data-start-time="${r.start_time || 0}"
|
||||
data-end-time="${r.end_time || (r.start_time || 0) + 10}"
|
||||
data-start-time="${startTime}"
|
||||
data-end-time="${endTime}"
|
||||
data-text="${textAttr}">
|
||||
<div class="chunk-time">${r.file_uuid} | ${(r.start_time || 0).toFixed(1)}s - ${(r.end_time || (r.start_time || 0) + 10).toFixed(1)}s</div>
|
||||
<div class="chunk-time">${r.file_uuid} | ${startTime.toFixed(1)}s - ${endTime.toFixed(1)}s</div>
|
||||
<div style="margin-top: 4px;">${r.text || '無內容'}</div>
|
||||
<div class="badge-status completed" style="margin-top: 4px;">相似度: ${(r.score * 100).toFixed(1)}%</div>
|
||||
<button class="play-btn">▶ 播放片段</button>
|
||||
|
||||
Reference in New Issue
Block a user