解决添加特效时,层级错误的问题。

This commit is contained in:
Hommy
2026-05-14 16:30:05 +08:00
parent c92ca8159d
commit 9fec138cd4
2 changed files with 12 additions and 2 deletions
+6
View File
@@ -250,6 +250,12 @@ class ScriptFile:
raise TypeError("错误的素材类型: '%s'" % type(material))
return self
def next_track_render_index(self) -> int:
"""为即将追加的新轨道分配 ``render_index``,保证叠在现有所有轨道之上(数值越大越接近前景)。"""
if not self.tracks:
return 0
return max(track.render_index for track in self.tracks.values()) + 1
def add_track(self, track_type: TrackType, track_name: Optional[str] = None, *,
mute: bool = False,
relative_index: int = 0, absolute_index: Optional[int] = None) -> "ScriptFile":
+6 -2
View File
@@ -57,9 +57,13 @@ def add_effects(
# 3. 从缓存中获取草稿
script: ScriptFile = DRAFT_CACHE[draft_id]
# 4. 添加特效轨道
# 4. 添加特效轨道(叠层按接口调用先后:新建轨时取当前最大 render_index + 1,与片段在时间轴上的 start/end 无关;避免默认 10000 盖住图片/叠加视频等)
track_name = f"effect_track_{helper.gen_unique_id()}"
script.add_track(track_type=TrackType.effect, track_name=track_name)
script.add_track(
track_type=TrackType.effect,
track_name=track_name,
absolute_index=script.next_track_render_index(),
)
logger.info(f"Added effect track: {track_name}")
# 5. 遍历特效信息,添加特效到草稿中的指定轨道,收集片段ID