fix: 修复预览播放器三个问题 - 素材静音+自动连播+标题显示
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 33s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m18s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m32s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m45s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m56s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 2m26s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 44s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 2m41s
AI Code Review / AI Code Review (pull_request) Failing after 2m28s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m5s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 7m26s
CI/CD Pipeline / CI Gate (pull_request) Successful in 15s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m0s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 689h18m6s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 689h18m10s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 689h18m12s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 689h18m14s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 689h18m16s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 689h18m28s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 689h23m29s
CI/CD Pipeline / PR Build Worker Image (pull_request) Failing after 689h23m35s
CI/CD Pipeline / PR Build API Image (pull_request) Failing after 689h23m40s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 689h23m31s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 689h25m16s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 689h25m40s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 689h25m44s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 689h51m51s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 689h57m16s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 689h58m57s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 689h59m25s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 33s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m18s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m32s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m45s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m56s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 2m26s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 44s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 2m41s
AI Code Review / AI Code Review (pull_request) Failing after 2m28s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m5s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 7m26s
CI/CD Pipeline / CI Gate (pull_request) Successful in 15s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m0s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 689h18m6s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 689h18m10s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 689h18m12s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 689h18m14s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 689h18m16s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 689h18m28s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 689h23m29s
CI/CD Pipeline / PR Build Worker Image (pull_request) Failing after 689h23m35s
CI/CD Pipeline / PR Build API Image (pull_request) Failing after 689h23m40s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 689h23m31s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 689h25m16s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 689h25m40s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 689h25m44s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 689h51m51s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 689h57m16s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 689h58m57s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 689h59m25s
1. 素材原声静音:video 标签添加 muted 属性,只播放配音音频 2. 片段自动连播:switchToSegment 后自动调用 video.play() 3. 标题显示:移除 display:grid 避免堆叠上下文冲突,添加 isolation:isolate
This commit is contained in:
@@ -256,6 +256,7 @@ const FrontendPreviewPlayer: React.FC<FrontendPreviewPlayerProps> = ({
|
||||
{/* ✅ 不再创建 .xx-preview-video 容器,直接渲染 video + 覆盖层 */}
|
||||
{/* video 元素 — 由父组件 .xx-preview-video 容器提供定位和尺寸 */}
|
||||
<video
|
||||
muted
|
||||
ref={videoRef}
|
||||
preload="auto"
|
||||
style={{
|
||||
|
||||
@@ -895,13 +895,12 @@
|
||||
max-height: 400px;
|
||||
border-radius: var(--radius-md);
|
||||
background: linear-gradient(135deg, var(--color-gray-900), var(--color-primary-900));
|
||||
display: grid;
|
||||
place-items: center;
|
||||
color: var(--text-inverse);
|
||||
font-size: 36px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin-bottom: 16px;
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
.xx-preview-video::before {
|
||||
|
||||
@@ -254,7 +254,14 @@ export function useSegmentScheduler(segments: PlaybackSegment[]): SegmentSchedul
|
||||
if (video.currentTime >= seg.endTime - 0.15) {
|
||||
const nextIndex = currentSegmentIndex + 1
|
||||
if (nextIndex < segments.length) {
|
||||
switchToSegment(nextIndex)
|
||||
switchToSegment(nextIndex).then(() => {
|
||||
const v = videoRef.current
|
||||
if (v) {
|
||||
v.play().catch((e) =>
|
||||
console.warn("[useSegmentScheduler] auto-play next segment failed:", e),
|
||||
)
|
||||
}
|
||||
})
|
||||
const accumulatedTime =
|
||||
(timelineStarts[currentSegmentIndex] || 0) + (seg.endTime - seg.startTime)
|
||||
setCurrentTime(accumulatedTime)
|
||||
|
||||
Reference in New Issue
Block a user