diff --git a/apps/admin-web/src/pages/AdminEditorAssetQueryPage.test.tsx b/apps/admin-web/src/pages/AdminEditorAssetQueryPage.test.tsx index 3d075d2ed..346a7335d 100644 --- a/apps/admin-web/src/pages/AdminEditorAssetQueryPage.test.tsx +++ b/apps/admin-web/src/pages/AdminEditorAssetQueryPage.test.tsx @@ -154,7 +154,7 @@ test('后台素材查询音频素材使用统一封面缩略图', async () => { const image = await screen.findByRole('img', { name: '素材:胜利音效' }); expect(image.getAttribute('src')).toBe( - '/creation-home/audio-asset-cover.svg', + '/creation-home/audio-asset-cover.png', ); expect(getAdminAssetReadUrl).not.toHaveBeenCalled(); }); diff --git a/apps/admin-web/src/pages/AdminEditorAssetQueryPage.tsx b/apps/admin-web/src/pages/AdminEditorAssetQueryPage.tsx index 50f588c25..177865f24 100644 --- a/apps/admin-web/src/pages/AdminEditorAssetQueryPage.tsx +++ b/apps/admin-web/src/pages/AdminEditorAssetQueryPage.tsx @@ -19,7 +19,7 @@ interface AdminEditorAssetQueryPageProps { } const ADMIN_ASSET_READ_EXPIRE_SECONDS = 300; -const AUDIO_ASSET_COVER_SRC = '/creation-home/audio-asset-cover.svg'; +const AUDIO_ASSET_COVER_SRC = '/creation-home/audio-asset-cover.png'; export function AdminEditorAssetQueryPage({ token, diff --git a/apps/admin-web/src/pages/AdminEditorShowcaseReviewPage.test.tsx b/apps/admin-web/src/pages/AdminEditorShowcaseReviewPage.test.tsx index ac11c94bd..90cd99289 100644 --- a/apps/admin-web/src/pages/AdminEditorShowcaseReviewPage.test.tsx +++ b/apps/admin-web/src/pages/AdminEditorShowcaseReviewPage.test.tsx @@ -200,7 +200,7 @@ test('后台精选审核音频素材使用统一封面缩略图', async () => { const image = await screen.findByRole('img', { name: '精选素材:胜利音效' }); expect(image.getAttribute('src')).toBe( - '/creation-home/audio-asset-cover.svg', + '/creation-home/audio-asset-cover.png', ); expect(getAdminAssetReadUrl).not.toHaveBeenCalled(); }); diff --git a/apps/admin-web/src/pages/AdminEditorShowcaseReviewPage.tsx b/apps/admin-web/src/pages/AdminEditorShowcaseReviewPage.tsx index 302d4d074..1988dfab4 100644 --- a/apps/admin-web/src/pages/AdminEditorShowcaseReviewPage.tsx +++ b/apps/admin-web/src/pages/AdminEditorShowcaseReviewPage.tsx @@ -24,7 +24,7 @@ interface AdminEditorShowcaseReviewPageProps { } const ADMIN_SHOWCASE_READ_EXPIRE_SECONDS = 300; -const AUDIO_ASSET_COVER_SRC = '/creation-home/audio-asset-cover.svg'; +const AUDIO_ASSET_COVER_SRC = '/creation-home/audio-asset-cover.png'; const showcaseCategoryOptions = [ { value: 'packs', label: '素材包' }, diff --git a/public/creation-home/audio-asset-cover.png b/public/creation-home/audio-asset-cover.png new file mode 100644 index 000000000..893e476ab Binary files /dev/null and b/public/creation-home/audio-asset-cover.png differ diff --git a/public/creation-home/audio-asset-cover.svg b/public/creation-home/audio-asset-cover.svg deleted file mode 100644 index 0e96909aa..000000000 --- a/public/creation-home/audio-asset-cover.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/src/components/creation-home/CreationLandingView.test.tsx b/src/components/creation-home/CreationLandingView.test.tsx index b80a8d7f6..e54762ba5 100644 --- a/src/components/creation-home/CreationLandingView.test.tsx +++ b/src/components/creation-home/CreationLandingView.test.tsx @@ -547,7 +547,7 @@ describe('CreationLandingView', () => { name: '背景音乐', }); expect(image.getAttribute('src')).toBe( - '/creation-home/audio-asset-cover.svg', + '/creation-home/audio-asset-cover.png', ); }); diff --git a/src/components/creation-home/CreationLandingView.tsx b/src/components/creation-home/CreationLandingView.tsx index 833e6f490..64f8a2cf1 100644 --- a/src/components/creation-home/CreationLandingView.tsx +++ b/src/components/creation-home/CreationLandingView.tsx @@ -191,7 +191,7 @@ function ShowcaseAudioPreview({ objectKey: preview.objectKey, }); const coverSrc = - preview.coverSrc?.trim() || '/creation-home/audio-asset-cover.svg'; + preview.coverSrc?.trim() || '/creation-home/audio-asset-cover.png'; return (
diff --git a/src/components/creation-home/creationShowcaseModel.test.ts b/src/components/creation-home/creationShowcaseModel.test.ts index 99a53de5d..e108cb496 100644 --- a/src/components/creation-home/creationShowcaseModel.test.ts +++ b/src/components/creation-home/creationShowcaseModel.test.ts @@ -459,7 +459,7 @@ describe('creationShowcaseModel', () => { expect(items).toHaveLength(1); expect(items[0]?.previews[0]?.mediaType).toBe('audio'); expect(items[0]?.previews[0]?.coverSrc).toBe( - '/creation-home/audio-asset-cover.svg', + '/creation-home/audio-asset-cover.png', ); expect(items[0]?.author).toBe('当前用户'); expect(items[0]?.cost).toBe('5泥点'); diff --git a/src/components/creation-home/creationShowcaseModel.ts b/src/components/creation-home/creationShowcaseModel.ts index 4001a2f0a..68dd913a3 100644 --- a/src/components/creation-home/creationShowcaseModel.ts +++ b/src/components/creation-home/creationShowcaseModel.ts @@ -56,7 +56,7 @@ type ShowcaseAssetGroup = { }; const UNKNOWN_META_VALUE = '-'; -const AUDIO_ASSET_COVER_SRC = '/creation-home/audio-asset-cover.svg'; +const AUDIO_ASSET_COVER_SRC = '/creation-home/audio-asset-cover.png'; const SHOWCASE_COST_KEYS = [ 'priceMudPoints', diff --git a/src/components/image-editor/ImageCanvasAssetRowView.test.tsx b/src/components/image-editor/ImageCanvasAssetRowView.test.tsx index 2ca914786..dec4bac5e 100644 --- a/src/components/image-editor/ImageCanvasAssetRowView.test.tsx +++ b/src/components/image-editor/ImageCanvasAssetRowView.test.tsx @@ -249,7 +249,7 @@ describe('ImageCanvasAssetRowView', () => { expect(screen.getByText('音频')).toBeTruthy(); const image = screen.getByRole('img', { name: '素材:胜利音效.mp3' }); expect(image.getAttribute('src')).toBe( - '/creation-home/audio-asset-cover.svg', + '/creation-home/audio-asset-cover.png', ); expect( document.querySelector('.image-canvas-editor__asset-media-overlay'), diff --git a/src/components/image-editor/ImageCanvasAssetRowView.tsx b/src/components/image-editor/ImageCanvasAssetRowView.tsx index c6bd2093a..32f387cbb 100644 --- a/src/components/image-editor/ImageCanvasAssetRowView.tsx +++ b/src/components/image-editor/ImageCanvasAssetRowView.tsx @@ -24,7 +24,7 @@ import { getCanvasMediaPreviewMarker, } from './ImageCanvasMediaModel'; -const AUDIO_ASSET_COVER_SRC = '/creation-home/audio-asset-cover.svg'; +const AUDIO_ASSET_COVER_SRC = '/creation-home/audio-asset-cover.png'; export type ImageCanvasAssetRowViewProps = { asset: EditorAsset; diff --git a/src/components/image-editor/ImageCanvasLayerPanelView.tsx b/src/components/image-editor/ImageCanvasLayerPanelView.tsx index aa03a6150..bf4a9941d 100644 --- a/src/components/image-editor/ImageCanvasLayerPanelView.tsx +++ b/src/components/image-editor/ImageCanvasLayerPanelView.tsx @@ -7,6 +7,8 @@ import type { ImageContextMenuState, } from './ImageCanvasEditorTypes'; +const AUDIO_ASSET_COVER_SRC = '/creation-home/audio-asset-cover.png'; + export type ImageCanvasLayerPanelViewProps = { layers: CanvasLayer[]; selectedLayerId: string | null; @@ -52,8 +54,12 @@ export function ImageCanvasLayerPanelView({ ] .filter(Boolean) .join(' · ')} - imageSrc={layer.src} - objectKey={layer.mediaType === 'image' ? layer.objectKey : undefined} + imageSrc={ + layer.mediaType === 'audio' ? AUDIO_ASSET_COVER_SRC : layer.src + } + objectKey={ + layer.mediaType === 'image' ? layer.objectKey : undefined + } imageAlt={`图层缩略图:${layer.title}`} selected={selectedLayerId === layer.id} primaryLabel={`选择图层${layer.title}`} diff --git a/src/components/image-editor/ImageCanvasSidebarView.test.tsx b/src/components/image-editor/ImageCanvasSidebarView.test.tsx index 83300590f..5b479b6e8 100644 --- a/src/components/image-editor/ImageCanvasSidebarView.test.tsx +++ b/src/components/image-editor/ImageCanvasSidebarView.test.tsx @@ -297,6 +297,28 @@ describe('ImageCanvasSidebarView', () => { ).toBeTruthy(); }); + it('uses the transparent audio cover for audio layer thumbnails', () => { + render( + , + ); + + const image = screen.getByAltText('图层缩略图:胜利音效'); + expect(image.getAttribute('src')).toBe( + '/creation-home/audio-asset-cover.png', + ); + }); + it('filters canvas layers from the sidebar search field', () => { render(