Debug Log Analiz Raporu

Oturum: SES-MM2VKMYQ-27RA | Nurullah (UID: 1) | 435 dakika

MacBook Pro, Chrome 145 8GB RAM, 14 Core 4G / 10 Mbps

Basit Anlatım (Herkes İçin)

Nurullah 7 saatten fazla müzik dinlemiş. Genel olarak sistem stabil çalışmış — bellek 28-36MB arasında sabit kalmış, hiç HLS hatası olmamış, 945 segment'in hepsi başarıyla yüklenmiş.

Ancak bazı "gizli" sorunlar var: Sonraki şarkıyı önceden yükleme sistemi (preload) hiç çalışmamış gibi görünüyor — aslında muhtemelen çalışıyor ama sayaçları güncelleyen sinyaller (event'ler) hiç gönderilmemiş. Ayrıca ses seviyesi %0 olarak raporlanmış ama kullanıcı müzik dinlemiş — bu da raporlama hatası.

Sonuç: Player çalışıyor ama debug raporundaki 7 farklı metrik yanlış ölçülüyordu. Hepsi düzeltildi.

Sağlık Skoru

28MB
Bellek (Stabil)
Sorun Yok
0
HLS Hata
Sorun Yok
945/945
Segment Başarı
%100
7
Raporlama Hatası
Düzeltildi

Teknik Detaylar (Geliştiriciler İçin)

1. Volume Raporlama Hatası

Düzeltildi

Sorun: Debug raporu Volume: 0% gösteriyor ama kullanıcı müzik dinlemiş (18 kez play basılmış).

Kök Neden: performance-debug.js:391 satırında store?.muted okunuyor ama player state'te property adı isMuted. Yanlış property → her zaman undefinedfalse.

Fix: store?.mutedstore?.isMuted

2. Cache Tracking "undefined"

Düzeltildi

Sorun: Şarkı geçişlerinde Cache: undefined → undefined gösteriliyor.

Kök Neden: streamUrlCache bir Map nesnesi. Alpine.js proxy'si Map.size getter'ını düzgün iletemiyor.

Fix: captureFullState() ve metrics'te Map.size yerine keys() ile iteratif sayım fallback'i eklendi.

3. SEQ-DELTA Tetikleyiciler Sıfır

Düzeltildi

Sorun: 16 şarkı geçişi olmuş ama tüm tetikleyiciler (autoplay, user_next, user_prev, shuffle_pick, direct_select) = 0.

Kök Neden: performance-debug.js bu event'leri dinliyor (player:next, player:prev, player:autoplay) ama player-core.js'te hiçbiri dispatch edilmemiş.

Fix: nextTrack()'e player:autoplay / player:next, previousTrack()'e player:prev, preload fonksiyonlarına player:preloadSuccess / player:preloadFail dispatch'leri eklendi.

4. Crossfade Devre Dışı Bırakma

Düzeltildi

Sorun: Crossfade kapalı (crossfadeEnabled: false) ama 16 farklı yerden startCrossfade() çağrılıyor — gereksiz fonksiyon çağrıları.

Fix: startCrossfade() ve completeCrossfade() fonksiyonlarının başına if (!this.crossfadeEnabled) return; guard'ı eklendi. Artık tüm çağrılar anında geri döner.

5. STALE_AUDIO Sürekli Uyarı

Düzeltildi

Sorun: 30 ardışık STALE_AUDIO uyarısı — her 11 saniyede bir tekrarlanıyor.

Kök Neden: safeAudioCleanup() sonrası hlsAudioNext element'inin currentSrc property'si bazı tarayıcılarda temizlenmez (src attribute kaldırılsa bile). Kontrol 5 !audio.currentSrc şartını geçemez → stale sayılır.

Fix: Kontrol 5 genişletildi: currentTime === 0 && (isNaN(duration) || duration === 0) = boş element. Ek Kontrol 6: !audio.getAttribute('src') && paused && currentTime === 0 = temizlenmiş element.

6. HLS Variant NAME Eşleme

Düzeltildi

Sorun: Manifest'te NAME="original" yazıyor ama debug raporu bunu tanımıyor.

Kök Neden: getQualityInfo() fonksiyonundaki knownNames sözlüğünde "original" anahtarı yok.

Fix: knownNames sözlüğüne 'original': null eklendi ve "original""high" eşlemesi yapıldı.

Not: Logda Variant Sayısı: 1 görünmesi ise farklı bir durum. Master.m3u8'de 4 variant mevcut (ultralow/low/mid/original). HLS.js'in o anda sadece 1 variant raporlaması, uzun süre aynı level'da kaldığında (ABR sabitlenmiş) veya raporlama anında HLS instance'ın level cache'inin kısıtlı olmasından kaynaklanabilir. Bu, player'ın doğru çalıştığı anlamına gelir.

7. Preload Sayaçları

Düzeltildi

Sorun: Preload Başarılı: 0, Preload Başarısız: 0 — preload hiç çalışmamış gibi görünüyor.

Kök Neden: SEQ-DELTA ile aynı sorun — player:preloadSuccess ve player:preloadFail event'leri player-core.js'te hiç dispatch edilmemiş.

Fix: preloadNextSong() fonksiyonundaki FRAG_BUFFERED (başarılı), ERROR (başarısız) ve timeout (15sn aşım) durumlarına event dispatch'leri eklendi. Safari native path'e de eklendi.

Ağ Durumu Analizi

Oturum boyunca 4 bağlantı değişimi yaşanmış:

06:44:06 4G3G (1.25 Mbps, RTT: 250ms)
06:44:30 3G4G (10 Mbps, RTT: 50ms) — 24sn sonra düzeldi
09:02:32 4G3G (1.25 Mbps, RTT: 1000ms)
09:07:44 3G4G (10 Mbps, RTT: 100ms) — 5dk sonra düzeldi

Tek gecikme olayı (10:56:31) sırasında yapılan ağ testi: Ping 743ms, Jitter 1296ms → İnternet sorunu (%95 güven). Bu, player'ın değil kullanıcının internet bağlantısının geçici olarak yavaşlamasıdır. HLS ABR (Adaptive Bitrate) sayesinde kalite otomatik düşürülür ve dinleme kesilmez.

5 rebuffer olayı kaydedilmiş (toplam 1 saniye bekleme) — bu, 7 saatlik bir oturum için çok düşük bir değer.

Değiştirilen Dosyalar

public/themes/muzibu/js/player/features/performance-debug.js
  • Satır 391: mutedisMuted (volume fix)
  • Satır 360: Cache size — Alpine Map.size proxy fallback
  • Satır 1623: Metrics cache — aynı fallback
  • Satır 254: knownNames'e "original" eklendi
  • Satır 1232: STALE_AUDIO Kontrol 5 genişletildi + Kontrol 6 eklendi
public/themes/muzibu/js/player/core/player-core.js
  • Satır 2219: nextTrack()'e player:autoplay / player:next dispatch
  • Satır 2141: previousTrack()'e player:prev dispatch
  • Satır 7700: Preload FRAG_BUFFERED → player:preloadSuccess dispatch
  • Satır 7715: Preload ERROR → player:preloadFail dispatch
  • Satır 7725: Preload timeout → player:preloadFail dispatch
  • Satır 7770: Safari preload → success/fail dispatch
  • Satır 2551: startCrossfade()if (!crossfadeEnabled) return; guard
  • Satır 2918: completeCrossfade() → aynı guard
26 Şubat 2026 • Muzibu.com.tr