Sistem İnceleme & Analiz
player-core.js · performance-debug.js · 19 Şubat 2026
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.
_trackId ile önlenmiş.
ontimeupdate 250ms throttle edilmiş, ancak _lastTimeupdateProcess değişkeni global paylaşıldığı için spot ve ana audio birbirini blokluyor.
checkAndRefillQueue tetikleniyor ama hls.startLoad() eksik.
createHlsBlobUrl atlanmış, token expiry durumunda gapless geçiş bozulabilir.
| 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 |
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);
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);
}
| 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% |
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.