From 8a32c5c1b31578227fb462394ec979e418419a58 Mon Sep 17 00:00:00 2001 From: hibna Date: Thu, 12 Feb 2026 17:54:16 +0300 Subject: [PATCH] Some fixes --- PROJE_EKSIK_HATALI_NOKTALAR.md | 67 +++++++++ PROJE_OZELLIK_ENVANTERI.md | 146 ++++++++++++++++++ README.md | 38 ++--- examples/App.tsx | 4 +- package.json | 10 +- src/components/VideoElement.tsx | 86 +++++++---- src/components/VideoPlayer.test.tsx | 167 +++++++++++---------- src/components/VideoPlayer.tsx | 9 +- src/components/controls/PIPButton.tsx | 5 +- src/components/menus/SettingsMenu.test.tsx | 122 +++++++++++++++ src/hooks/useKeyboardShortcuts.test.tsx | 74 +++++++++ src/hooks/useTouchGestures.test.tsx | 90 +++++++++++ src/index.ts | 1 + src/types/index.ts | 2 +- src/utils/hlsSetup.test.ts | 126 ++++++++++++++++ src/utils/mpegtsSetup.test.ts | 92 ++++++++++++ src/utils/rtmpSetup.test.ts | 92 ++++++++++++ vite.config.lib.ts | 1 + 18 files changed, 997 insertions(+), 135 deletions(-) create mode 100644 PROJE_EKSIK_HATALI_NOKTALAR.md create mode 100644 PROJE_OZELLIK_ENVANTERI.md create mode 100644 src/components/menus/SettingsMenu.test.tsx create mode 100644 src/hooks/useKeyboardShortcuts.test.tsx create mode 100644 src/hooks/useTouchGestures.test.tsx create mode 100644 src/utils/hlsSetup.test.ts create mode 100644 src/utils/mpegtsSetup.test.ts create mode 100644 src/utils/rtmpSetup.test.ts diff --git a/PROJE_EKSIK_HATALI_NOKTALAR.md b/PROJE_EKSIK_HATALI_NOKTALAR.md new file mode 100644 index 0000000..4dba1a9 --- /dev/null +++ b/PROJE_EKSIK_HATALI_NOKTALAR.md @@ -0,0 +1,67 @@ +# Video Player - Duzeltme Sonucu + +Bu dosya, onceki "eksik/hata" listesindeki maddelerin duzeltildigini gostermek icin guncellendi. +Guncelleme tarihi: 2026-02-12 + +## 1) Duzeltilen Kod Sorunlari + +- [x] README'de gecen `features` ve `initializePolyfills` export edilmiyordu + - Duzeltme: `src/index.ts` icine `initializePolyfills` ve `features` exportlari eklendi. + +- [x] `VideoProtocol` tipi ile protokol algilama sonucu uyumsuzdu + - Duzeltme: `src/types/index.ts` icindeki `VideoProtocol` tipine `mpegts` eklendi. + +- [x] PIP butonu desteksiz tarayicida gorunebiliyordu + - Duzeltme: `src/components/controls/PIPButton.tsx` icindeki destek kontrolu + `pictureInPictureEnabled === true` ve `requestPictureInPicture` fonksiyon kontrolu ile guclendirildi. + +- [x] `VideoElement` async setup/cancel race riski vardi + - Duzeltme: `src/components/VideoElement.tsx` icine cancellation guard eklendi. + - Asenkron kurulumdan sonra unmount olmus senaryoda gec kalan instance'lar aninda temizleniyor. + +- [x] Demo poster yolu hataliydi (`.srt` dosyasina isaret ediyordu) + - Duzeltme: `examples/App.tsx` poster yolu `'/player/poster.svg'` olarak guncellendi. + - Yeni poster dosyasi eklendi: `public/poster.svg`. + +## 2) Duzeltilen Dokumantasyon Uyumsuzluklari + +- [x] README TODO listesi implementasyonla celisiyordu + - Duzeltme: Tamamlanmis maddeler (`audio track UI`, `quality selector`, `speed menu`, `settings panel`) `[x]` olarak guncellendi. + +- [x] README bundle boyutu iddialari guncel build ile uyumsuzdu + - Duzeltme: Bundle bolumu guncel ve daha gercekci degerlerle guncellendi. + - Ayrica ust bolumdeki "15KB" iddiasi revize edildi. + +- [x] README'de "Media Session API" kullanim iddiasi vardi ama kodda yoktu + - Duzeltme: Teknik API listesi gercek kullanimla hizalandi. + +## 3) Test Kalitesi Duzeltmeleri + +- [x] `act(...)` uyarilari + - Duzeltme: `src/components/VideoPlayer.test.tsx` icinde olay tetiklemeleri `fireEvent`/`act` ile duzenlendi. + - Son test kosusunda `act(...)` uyarisi alinmadi. + +- [x] Test kapsami sinirliydi + - Duzeltme: asagidaki yeni test dosyalari eklendi: + - `src/components/menus/SettingsMenu.test.tsx` + - `src/hooks/useKeyboardShortcuts.test.tsx` + - `src/hooks/useTouchGestures.test.tsx` + - `src/utils/hlsSetup.test.ts` + - `src/utils/rtmpSetup.test.ts` + - `src/utils/mpegtsSetup.test.ts` + +## 4) Dogrulama Sonuclari + +Asagidaki komutlar bu guncellemelerden sonra basariyla calisti: + +- `npm run lint` +- `npm run test` +- `npm run build` +- `npm run build:lib` + +Toplam test durumu: + +- 9 test dosyasi +- 80 test +- tumu basarili + diff --git a/PROJE_OZELLIK_ENVANTERI.md b/PROJE_OZELLIK_ENVANTERI.md new file mode 100644 index 0000000..62f3db2 --- /dev/null +++ b/PROJE_OZELLIK_ENVANTERI.md @@ -0,0 +1,146 @@ +# Video Player - Mevcut Ozellik Envanteri + +Bu dosya, depoda yer alan kod, testler ve calistirilabilir komutlar incelenerek olusturuldu. +Inceleme tarihi: 2026-02-12 + +## 1) Genel Mimari ve Paketleme + +- React + TypeScript tabanli bir video oynatici kutuphanesi. +- Ana giris dosyasi: `src/index.ts` +- Ana bilesen: `src/components/VideoPlayer.tsx` +- Durum yonetimi: `src/contexts/PlayerContext.tsx` +- Vite ile hem demo app hem kutuphane derlemesi var: + - Uygulama derlemesi: `npm run build` (`vite.config.ts`) + - Kutuphane derlemesi: `npm run build:lib` (`vite.config.lib.ts`) +- Tip bildirimi uretiliyor (`vite-plugin-dts`). + +## 2) Desteklenen Medya Turleri ve Protokoller + +Kaynak: `src/utils/videoProtocol.ts`, `src/components/VideoElement.tsx` + +- Native HTML5 video (mp4/webm vb.): dogrudan `