You've already forked FrameTour-RenderWorker
feat(task): 增强素材URL处理和验证逻辑
- 添加详细的get_material_url方法文档说明优先级逻辑 - 新增get_source_ref方法用于获取素材源引用 - 新增get_bound_material_url方法用于获取绑定素材URL - 在视频渲染处理器中添加HTTP URL格式验证检查 - 当素材URL格式无效时返回详细错误信息和调试日志 - 验证失败时返回E_SPEC_INVALID错误码并提示服务器需提供有效的boundMaterialUrl
This commit is contained in:
@@ -350,9 +350,25 @@ class Task:
|
||||
return int(self.payload.get('durationMs', 5000))
|
||||
|
||||
def get_material_url(self) -> Optional[str]:
|
||||
"""获取素材 URL"""
|
||||
"""
|
||||
获取素材 URL
|
||||
|
||||
优先使用 boundMaterialUrl(实际可下载的 HTTP URL),
|
||||
如果不存在则回退到 sourceRef(可能是 slot 引用)。
|
||||
|
||||
Returns:
|
||||
素材 URL,如果都不存在返回 None
|
||||
"""
|
||||
return self.payload.get('boundMaterialUrl') or self.payload.get('sourceRef')
|
||||
|
||||
def get_source_ref(self) -> Optional[str]:
|
||||
"""获取素材源引用(slot 标识符,如 device:xxx)"""
|
||||
return self.payload.get('sourceRef')
|
||||
|
||||
def get_bound_material_url(self) -> Optional[str]:
|
||||
"""获取绑定的素材 URL(实际可下载的 HTTP URL)"""
|
||||
return self.payload.get('boundMaterialUrl')
|
||||
|
||||
def get_render_spec(self) -> RenderSpec:
|
||||
"""获取渲染规格"""
|
||||
return RenderSpec.from_dict(self.payload.get('renderSpec'))
|
||||
|
||||
Reference in New Issue
Block a user