# Podcast Upptökur - Tæknilegt yfirlit ## Yfirlit Podcast Upptökur er byggt á Next.js 14 með TypeScript og notar nýjustu tækni fyrir hljóðupptökur og spilun. Kerfið notar Web Audio API fyrir hljóðvinnslu og Socket.IO fyrir rauntíma samskipti. ## Tæknileg uppbygging ### Hljóðupptaka - Notar `MediaRecorder` API fyrir upptökur - Stuðningur við mörg hljóðsnið (webm, ogg, mp4) - 48kHz upptökuhraði með 1 rás - Hljóðgæði: 510kbps - Upptökutími: Allt að 50 mínútur ### Hljóðspilun - Notar `AudioContext` og `AnalyserNode` fyrir línurit - Stuðningur við spilun, hlé, stöðvun og tímasetningu - Sýnir tímalengd og núverandi spilunartíma - Vísar hljóðbylgjuform í rauntíma ### Gagnagrunnur Upptökur eru vistaðar með eftirfarandi upplýsingum: ```typescript interface PodcastRecording { id: string; filename: string; createdAt: string; // ISO date string size: number; duration?: number | null; mimetype: string; } ``` ## API Endapunktar ### GET /api/studio/podcasts - Sækir lista af öllum upptökum - Skilar `PodcastRecording[]` ### GET /api/studio/podcasts/play/{id} - Sækir hljóðskrá fyrir spilun - Skilar hljóðskrá sem stream ### POST /api/studio/podcasts - Vistar nýja upptöku - Tekur við FormData með hljóðskrá - Skilar `PodcastRecording` ### DELETE /api/studio/podcasts/{id} - Eyðir upptöku - Skilar 204 ef upptakan var eytt ## Socket.IO Atburðir ### Upptaka - `start-recording`: Byrjar upptöku - `recording-data`: Sendir hljóðgögn - `stop-recording`: Stöðvar upptöku ### Spilun - `play`: Byrjar spilun - `pause`: Gerir hlé - `stop`: Stöðvar spilun - `seek`: Færir spilunartíma ## Öryggi - Öll API köll krefjast innskráningar - Hljóðskrár eru vistaðar á öruggum stað - Upptökur eru aðgengilegar aðeins fyrir eiganda þeirra ## Takmarkanir - Hámarksupptökutími: 50 mínútur - Stuðningur við hljóðskrár - Krafist er nýlegs vafra með stuðningi við Web Audio API ## Þróun - Notar TypeScript fyrir öruggan kóða - React hooks fyrir stjórn á stöðu - Radix UI fyrir samræmt notendaviðmót - Tailwind CSS fyrir stílsnið