2.1 KiB
2.1 KiB
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
ogAnalyserNode
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:
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ökurecording-data
: Sendir hljóðgögnstop-recording
: Stöðvar upptöku
Spilun
play
: Byrjar spilunpause
: Gerir hléstop
: Stöðvar spilunseek
: 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ð