@@ -16,6 +16,8 @@ import { useMediaStore } from "@/stores/media-store";
1616import { useProjectStore } from "@/stores/project-store" ;
1717import { DEFAULT_FPS } from "@/stores/project-store" ;
1818import { ExportOptions , ExportResult } from "@/types/export" ;
19+ import { TimelineTrack } from "@/types/timeline" ;
20+ import { MediaFile } from "@/types/media" ;
1921
2022export const DEFAULT_EXPORT_OPTIONS : ExportOptions = {
2123 format : "mp4" ,
@@ -40,8 +42,8 @@ interface AudioElement {
4042}
4143
4244async function createTimelineAudioBuffer (
43- tracks : any [ ] ,
44- mediaFiles : any [ ] ,
45+ tracks : TimelineTrack [ ] ,
46+ mediaFiles : MediaFile [ ] ,
4547 duration : number ,
4648 sampleRate : number = 44100
4749) : Promise < AudioBuffer | null > {
@@ -51,15 +53,15 @@ async function createTimelineAudioBuffer(
5153
5254 // Collect all audio elements from timeline
5355 const audioElements : AudioElement [ ] = [ ] ;
54- const mediaMap = new Map ( mediaFiles . map ( ( m ) => [ m . id , m ] ) ) ;
56+ const mediaMap = new Map < string , MediaFile > ( mediaFiles . map ( ( m ) => [ m . id , m ] ) ) ;
5557
5658 for ( const track of tracks ) {
5759 if ( track . muted ) continue ;
5860
5961 for ( const element of track . elements ) {
6062 if ( element . type !== "media" ) continue ;
6163
62- const mediaItem = mediaMap . get ( element . mediaId ) ;
64+ const mediaItem = element . type === "media" ? mediaMap . get ( element . mediaId ) : null ;
6365 if ( ! mediaItem || mediaItem . type !== "audio" ) continue ;
6466
6567 const visibleDuration =
0 commit comments