19 Şubat 2026
16 saatlik çalma için orta-iyi seviyede güvenilir.
Sistem genel olarak stabil ve 16 saatlik arka plan çalma için uygun. En büyük risk, internet gidip geldiğinde çalmanın otomatik toparlanmasının tam garanti olmaması. Ayrıca bazı küçük bellek birikimleri uzun süreli çalışmada sistemi yavaşlatabilir. Bu iki noktaya dokunulursa kesintisiz kullanım daha güvenli hale gelir.
Neden önemli? Çünkü kafede kimse başında durmuyor; küçük bir kopma bile müziğin tamamen durmasına yol açabilir.
| Değişiklik | Beklenen | Bulgu | Durum |
|---|---|---|---|
| enableWorker: true | HLS decode worker ile | `HLS_SHARED_CONFIG.enableWorker = true` | ✅ Doğru |
| ontimeupdate throttle 250ms (6 yer) | Her handler başında 250ms throttle | Satırlar ~2602, ~2942, ~4025, ~4208, ~5232, ~5443 | ✅ Doğru |
| Progress interval 100ms → 250ms | setInterval(..., 250) | Satırlar ~2314, ~5771, ~5829 | ✅ Doğru |
| Blob URL variant absolutization | Adım 3.5 + double query guard | `createHlsBlobUrl` içinde adım 3.5 mevcut | ✅ Doğru |
| Network offline/online recovery | Offline guard + online refill | `_networkOffline` guard + offline/online listener’ları mevcut | ✅ Doğru |
| Cihaz/bağlantı debug paneli | captureFullState + updatePanel bölümü | `device{}` snapshot + “📱 Cihaz & Bağlantı” bölümü var | ✅ Doğru |
window.addEventListener('online', () => {
this._networkOffline = false;
setTimeout(() => {
this.checkAndRefillQueue();
const audio = this.getActiveHlsAudio?.();
if (this.hls && audio && audio.paused) {
this.hls.startLoad(-1);
try { this.hls.recoverMediaError(); } catch (e) {}
audio.play().catch(() => {});
}
}, 1000);
});
// Doğrudan set yerine merkezi helper
this.addToStreamCache(songId, {
stream_url: data.stream_url,
stream_type: data.stream_type,
fallback_url: data.fallback_url,
preview_duration: data.preview_duration,
cached_at: Date.now()
});
// Basit sınır önerisi
if (this.preloadedSongs.size > 200) {
this.preloadedSongs = new Set(Array.from(this.preloadedSongs).slice(-100));
}
// Buffer toparlandıktan sonra çalıştır
setTimeout(() => {
if (!document.hidden) MuzibuSpeedTester.runTest(TRIGGERS.AUTO_BUFFERING);
}, 15000);
// Core içinde bir kez window.activeBlobUrls = activeBlobUrls;
const now = performance.now(); if (now - (audio._lastTimeupdate || 0) < 250) return; audio._lastTimeupdate = now;
| Saat | Beklenen durum | Risk faktörü | Güvenlik skoru |
|---|---|---|---|
| 0h | Queue dolu, HLS pool hazır | Düşük | 92 |
| 1h | Preload ve crossfade stabil | Düşük | 90 |
| 4h | Cache büyümesi başlar | Orta (streamUrlCache büyümesi) | 82 |
| 8h | GC artışı ve küçük takılmalar | Orta (preloadedSongs + cache) | 78 |
| 12h | Wi‑Fi kopması ihtimali artar | Yüksek (offline sonrası toparlanma) | 70 |
| 16h | Uzun stabilite sınırı | Yüksek (HLS resume + bellek) | 68 |
Bu sistemi bir rakiple kıyaslasaydım, şu noktalarda öne çıkar: