恢复普通媒体画布时长状态

非角色动作图层继续从画布布局恢复音频和视频运行时秒数。

账号素材转图层时保留前端临时媒体时长,不写入角色动作正式字段。

补充音频图层时长恢复回归测试。
This commit is contained in:
2026-08-04 11:42:07 +08:00
parent 7b1adbd5a2
commit 351f41fd12
3 changed files with 7 additions and 0 deletions
@@ -589,6 +589,7 @@ describe('ImageCanvasEditorModel', () => {
sourceType: 'generated',
mediaType: 'audio',
assetKind: 'sound-effect',
durationSeconds: 3.5,
},
new Map([
[
@@ -605,6 +606,7 @@ describe('ImageCanvasEditorModel', () => {
src: '/generated-character-drafts/editor-audios/sfx.mp3',
mediaType: 'audio',
assetKind: 'sound-effect',
durationSeconds: 3.5,
});
});
@@ -186,6 +186,7 @@ export function createLayerFromAsset(
objectKey: asset.objectKey,
assetObjectId: asset.assetObjectId,
sourceResourceId: asset.sourceResourceId,
durationSeconds: asset.durationSeconds,
sourceAssetId: asset.id,
assetKind,
generationInputs: asset.generationInputs,
@@ -781,6 +782,9 @@ export function hydrateLayer(
? stringOrNull(resource?.assetObjectId)
: stringOrNull(snapshot.assetObjectId) ??
stringOrNull(resource?.assetObjectId),
durationSeconds: isCharacterAnimation
? undefined
: audioDurationOrNull(snapshot.durationSeconds),
imageSequenceDurationMs: isCharacterAnimation
? audioDurationOrNull(resource?.imageSequenceDurationMs)
: undefined,
@@ -60,6 +60,7 @@ export type EditorAsset = {
showcaseSubmitError?: string | null;
assetKind?: CanvasAssetKind | null;
generationInputs?: CanvasGenerationInputs | null;
durationSeconds?: number;
imageSequenceFrames?: EditorImageSequenceFrameResult[];
imageSequenceDurationMs?: number;
uploadStatus?: 'uploading' | 'failed';