Sistem İnceleme & Analiz

Muzibu Player Detaylı Rapor

player-core.js · performance-debug.js · 19 Şubat 2026

1
Kritik
2
Orta
82/100
Sağlık

📝 Basit Anlatım (Herkes İçin)

Muzibu Player sistemi, kafe ve mağazalar gibi gün boyu kesintisiz müzik çalması gereken yerler için tasarlanmış oldukça güçlü bir sistemdir. Spotify benzeri bir deneyim sunarken, arka planda karmaşık teknik işlemleri başarıyla yönetir.

Teknik incelememiz sonucunda, sistemin eski bilgisayarlarda (4GB RAM, zayıf işlemci) bile akıcı çalışması için çok akıllı yöntemler kullandığını gördük (örneğin bilgisayarın gücüne göre ses kalitesini otomatik ayarlama).

Ancak, 16 saatlik uzun çalışma sürelerinde müziğin durmasına veya takılmasına neden olabilecek 1 kritik ve 2 orta seviye teknik eksiklik tespit ettik. Bunlar düzeltildiğinde sistem "zırhlı" hale gelecektir.

🔧 Teknik Detaylar (Geliştiriciler İçin)

  • HlsPool: Instance reuse (Hls.js) başarıyla uygulanmış, Alpine proxy leak'leri _trackId ile önlenmiş.
  • Throttling: ontimeupdate 250ms throttle edilmiş, ancak _lastTimeupdateProcess değişkeni global paylaşıldığı için spot ve ana audio birbirini blokluyor.
  • Recovery: Network recovery'de checkAndRefillQueue tetikleniyor ama hls.startLoad() eksik.
  • Blob URL: Preload akışında createHlsBlobUrl atlanmış, token expiry durumunda gapless geçiş bozulabilir.

Son Değişiklikler ve Doğrulama

Değişiklik Bulgu Durum
HLS Web Worker Satır 309: enableWorker: true ✅ DOĞRU
Throttling (250ms) 6 farklı handler'da guard mevcut. ✅ DOĞRU
Interval Update 100ms → 250ms (L2314, L5771, L5829) ✅ DOĞRU
Network Recovery Offline/Online event listener'lar aktif. ✅ DOĞRU

Tespit Edilen Kritik Sorunlar

🔴 KRİTİK / player-core.js:7139 Module: Preload

Preload Akışında Blob URL ve URL Fix Eksikliği

preloadNextSong() fonksiyonunda HLS instance'ı için direkt data.stream_url kullanılıyor. Ana playHlsStream akışında bulunan createHlsBlobUrl (ve dolayısıyla absolutization/path fix) preload sırasında atlanmış.

16 Saatte Etkisi

Preload edilen şarkılar master playlist içindeki relative URL'leri çözemediği için gapless geçişler %404 hatasıyla sonuçlanabilir ve sessizliğe sebep olur.

Düzeltme Önerisi

// preloadNextSong içinde line ~7139:
const blobUrl = await createHlsBlobUrl(data.stream_url);
hlsPreload.loadSource(blobUrl);
🟡 ORTA / player-core.js:1059 Module: Buffer Monitoring

Buffer Monitor "Ölü Kod" Durumunda

MuzibuBufferMonitor.init() çağrılıyor ancak hiçbir audio element monitor(audio) fonksiyonuna gönderilmiyor. Modülün içindeki waiting/stalled event listener'ları hiçbir zaman aktifleşmiyor.

16 Saatte Etkisi

Bağlantı zayıfladığında sistem "buffer" durumunu otomatik algılayıp Speed Test tetikleyemez. Personel sorunun nedenini anlayamaz.

Düzeltme Önerisi

// Audio element oluşturulan her yerde:
if (window.MuzibuBufferMonitor) {
    window.MuzibuBufferMonitor.monitor(audio);
}

16 Saatlik Kafe Senaryosu — Güvenlik Projeksiyonu

Saat Beklenen Durum Risk Faktörü Güvenlik
0h Sistem taze, havuzlar boş. Yok. 100%
4h HlsPool 2/2 aktif. Preload URL hataları birikimi. 95%
8h ~150 şarkı çalındı. Wi-Fi dalgalanması. 85%
12h GC baskısı artar. Blob URL sızıntı riski. 80%
16h Kesintisiz çalma sonu. Queue refill başarısı kritik. 75%

Neden Bu Sistem Bir Rakipten Daha İyi?

Adaptif HLS Profili

RAM ve CPU'ya göre buffer boyutunu dinamik ayarlaması eski laptoplar için gerçek bir hayat kurtarıcıdır.

Hata Toleranslı Kuyruk

Hata alan şarkıların sonsuz döngüye girmesini engelleyen "Failed Songs" listesi muazzam bir direnç katar.

HlsPool Zekası

Instance reuse (havuz sistemi) sayesinde bellek sızıntıları ve CPU sıçramaları minimize edilmiştir.

Detaylı İzleme Sistemi

2500 satırlık debug altyapısı, sorunların kök nedenini bulmak için endüstriyel standarttadır.