Ozet
1
Sorun Duzeltildi
Blob URL Memory Leak
2
Sorun Incelendi
Zaten iyi handle edilmis
3
Kod Degisikligi
player-core.js
Basit Anlatim (Herkes Icin)
Problem Neydi?
Her sarki calarken tarayicida bir "blob URL" (gecici adres) olusturuluyordu. Ama bu adresler sarki bittikten sonra temizlenmiyordu. Uzun sure muzik dinleyen kullanicilar icin bu bellekte birikmeye neden oluyordu - ozellikle eski cihazlarda sorun yaratabilirdi.
Ne Yapildi?
Artik her sarki degistiginde veya hata olustugunda eski blob URL otomatik olarak temizleniyor. Bu sayede uzun sure dinlemede bile bellek temiz kaliyor.
Diger Sorunlar?
Safari HLS Deadlock ve Spot Player Overlap sorunlari incelendi. Her ikisi de kodda zaten iyi handle edilmis durumda - ek duzeltme gerekmedi.
Teknik Detaylar (Gelistiriciler Icin)
Blob URL Memory Leak - DUZELTILDI
player-core.js
|
3 farkli lokasyonda revokeBlobUrl() eklendi
Degisiklik 1: stopHls() fonksiyonu (satir 4229-4233)
// HLS destroy edilmeden once blob URL temizleniyor
if (this._currentBlobUrl) {
revokeBlobUrl(this._currentBlobUrl);
this._currentBlobUrl = null;
}
Degisiklik 2: retryCurrentHls() fonksiyonu (satir 5267-5271)
// HLS retry oncesi eski blob URL temizleniyor
if (this._currentBlobUrl) {
revokeBlobUrl(this._currentBlobUrl);
this._currentBlobUrl = null;
}
Degisiklik 3: triggerMp3Fallback() fonksiyonu (satir 5294-5298)
// MP3 fallback oncesi blob URL temizleniyor
if (this._currentBlobUrl) {
revokeBlobUrl(this._currentBlobUrl);
this._currentBlobUrl = null;
}
Nasil Calisiyor:
trackBlobUrl() ile olusturulan URL'ler activeBlobUrls Set'ine ekleniyor. revokeBlobUrl() ile hem URL.revokeObjectURL() cagriliyor hem de Set'ten siliniyor.
Safari HLS Deadlock - ZATEN DUZGUN
Safari native HLS path'i incelendi. Potansiyel deadlock noktalari:
safeAudioCleanup()once TUM event handler'lari temizliyor- Sonra
removeAttribute('src')cagriliyor - En son
audio.load()cagriliyor - Bu siralama deadlock riskini minimize ediyor
Ek duzeltme gerekmedi - kod duzgun calisiyordu
Spot Player Overlap - ZATEN DUZGUN
Anons ve muzik cakismasi incelendi. Mevcut korumalar:
pauseCurrentAudio()spot baslamadan muzigi durduruyor_isPlayingSpotflag'i cift tetiklemeyi onluyor- Tum pathler (onended, onerror, catch) flag'i reset ediyor
- Hata durumunda
resumeCurrentAudio()ile muzik devam ediyor playNextFromQueue()hata durumunda sonraki sarkiyi deniyor
Ek duzeltme gerekmedi - edge case'ler iyi handle edilmis
Tum Yapilan Degisiklikler (v1-v9)
Full Preload: 600 saniye buffer (tum sarki yukleniyor)
Buffer Hole: 2.5 saniye tolerans (kucuk bosluklari atla)
Auto-Pause: Devre disi (kullaniciyi rahatsiz etmesin)
Cloudflare Cache: 1 yil Edge TTL, 30 gun Browser TTL
Blob URL: Memory leak duzeltildi (v9)
Safari HLS + Spot Overlap: Kod incelendi, iyi durumda
Versiyon Gecmisi
v9
Blob URL Memory Leak duzeltmesi + Safari/Spot analizi
v8
Cloudflare 1 yil cache + Git checkpoint
v7
Full preload + Buffer hole toleransi
v6
Auto-pause devre disi
v1-5
Ilk analizler ve teknik detaylar