Player sistemi inceleme ve ABA test rehberi
Sorun: Bazı müşteriler Muzibu'da müzik dinlerken donma yaşıyor.
Neden olabilir?
Test amacı: Sorunun bizde mi (sunucu/kod) yoksa müşteride mi (internet/cihaz) olduğunu anlamak.
public/themes/muzibu/js/player/core/player-core.js → Ana player (358KB!)
public/themes/muzibu/js/player/features/buffer-monitor.js → Buffer izleme
public/themes/muzibu/js/player/features/speed-tester.js → Hız testi
public/themes/muzibu/js/player/features/device-profiler.js → Cihaz profili
public/themes/muzibu/js/player/features/old-device-checker.js → Eski cihaz uyarısı
200MB buffer + 250sn max buffer → Düşük RAM'li cihazlarda sorun
progressInterval, sessionPollInterval, bufferCheckInterval → Temizlenmezse bellek sızıntısı
maxLoadTimeMs: 60sn → Yavaş internette segment yüklenemez, buffer boşalır
_bufferHealthEnabled: false → Buffer boşalınca auto-pause yok, donma yaşanır
Aşağıdaki promptu ABA'ya (AI Browser Agent) yapıştırarak müşteri cihazında çalıştırın. Test sonuçları sorunun kaynağını belirlememize yardımcı olacak.
🎯 GÖREV: Muzibu Player Donma Testi - Kapsamlı Analiz
📋 AMAÇ:
Müşteri cihazında Muzibu player'ın donma sorununu tespit etmek.
Sorunun sunucu tarafında mı yoksa müşteri tarafında mı olduğunu belirlemek.
🌐 TEST URL: https://muzibu.com
📝 TEST SENARYOSU:
AŞAMA 1 - CİHAZ BİLGİSİ TOPLAMA:
1. Sayfayı aç ve DevTools Console'u aç (F12)
2. Şu komutları çalıştır ve sonuçları kaydet:
```javascript
// Cihaz bilgileri
console.log('=== CİHAZ BİLGİSİ ===');
console.log('RAM:', navigator.deviceMemory, 'GB');
console.log('CPU Çekirdek:', navigator.hardwareConcurrency);
console.log('Platform:', navigator.platform);
console.log('User Agent:', navigator.userAgent);
console.log('Ekran:', screen.width + 'x' + screen.height);
console.log('Tarayıcı Dil:', navigator.language);
console.log('Çevrimiçi:', navigator.onLine);
// Bağlantı bilgisi
const conn = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
if (conn) {
console.log('=== BAĞLANTI ===');
console.log('Bağlantı Tipi:', conn.type);
console.log('Effective Type:', conn.effectiveType);
console.log('Downlink:', conn.downlink, 'Mbps');
console.log('RTT:', conn.rtt, 'ms');
console.log('Save Data:', conn.saveData);
}
```
AŞAMA 2 - PLAYER DURUMU KONTROLÜ:
1. Herhangi bir şarkıya tıkla ve çalmaya başla
2. 10 saniye bekle
3. Console'da şu komutu çalıştır:
```javascript
// Player durumu
const store = Alpine.store('player');
console.log('=== PLAYER DURUMU ===');
console.log('Çalıyor mu:', store.isPlaying);
console.log('Buffer durumu:', store.isBuffering);
console.log('Şarkı yükleniyor:', store.isSongLoading);
console.log('HLS Stream:', store.isHlsStream);
console.log('Şu anki süre:', store.currentTime);
console.log('Toplam süre:', store.duration);
console.log('Kuyruk uzunluğu:', store.queue?.length);
// HLS instance kontrolü
if (store.hls) {
console.log('=== HLS DURUMU ===');
console.log('HLS Aktif:', !!store.hls);
const levels = store.hls.levels;
if (levels && levels.length > 0) {
console.log('Bitrate:', levels[0].bitrate);
}
}
```
AŞAMA 3 - BUFFER ANALİZİ:
1. Şarkı çalarken şu komutu çalıştır:
```javascript
// Buffer analizi
const audio = document.getElementById('hlsAudio');
if (audio && audio.buffered.length > 0) {
console.log('=== BUFFER ANALİZİ ===');
for (let i = 0; i < audio.buffered.length; i++) {
console.log('Buffer', i, ':', audio.buffered.start(i).toFixed(2), '-', audio.buffered.end(i).toFixed(2), 'sn');
}
const bufferedAhead = audio.buffered.end(audio.buffered.length - 1) - audio.currentTime;
console.log('Önde buffer:', bufferedAhead.toFixed(2), 'sn');
}
// Memory kullanımı (varsa)
if (performance.memory) {
console.log('=== BELLEK ===');
console.log('Kullanılan:', (performance.memory.usedJSHeapSize / 1024 / 1024).toFixed(2), 'MB');
console.log('Toplam:', (performance.memory.totalJSHeapSize / 1024 / 1024).toFixed(2), 'MB');
console.log('Limit:', (performance.memory.jsHeapSizeLimit / 1024 / 1024).toFixed(2), 'MB');
}
```
AŞAMA 4 - DONMA SİMÜLASYONU:
1. 3 farklı şarkı çal (N tuşu ile geç)
2. Her şarkıda 30 saniye bekle
3. Donma olursa:
- Tam olarak ne zaman oldu? (süre)
- Buffer durumu nasıldı?
- Console'da hata var mı?
```javascript
// Donma anında çalıştır
console.log('=== DONMA ANI ===');
const store = Alpine.store('player');
const audio = document.getElementById('hlsAudio');
console.log('Current Time:', audio?.currentTime);
console.log('Paused:', audio?.paused);
console.log('Ready State:', audio?.readyState);
console.log('Network State:', audio?.networkState);
console.log('isPlaying flag:', store?.isPlaying);
console.log('isBuffering flag:', store?.isBuffering);
// Son 10 saniye buffer kontrolü
if (audio?.buffered?.length > 0) {
const lastEnd = audio.buffered.end(audio.buffered.length - 1);
console.log('Buffer sonu:', lastEnd);
console.log('Buffer açığı:', lastEnd - audio.currentTime);
}
```
AŞAMA 5 - HIZ TESTİ:
1. Şu komutu çalıştır:
```javascript
// Manuel hız testi
console.log('=== HIZ TESTİ BAŞLIYOR ===');
if (window.MuzibuSpeedTester) {
MuzibuSpeedTester.runTest('manual').then(result => {
console.log('Download Hızı:', result.download_speed, 'Mbps');
console.log('Latency:', result.latency_ms, 'ms');
console.log('Jitter:', result.jitter_ms, 'ms');
console.log('Analiz:', result.analysis);
});
}
```
AŞAMA 6 - UZUN SÜRELI TEST (OPSİYONEL):
1. 10 dakika boyunca müzik çalmaya bırak
2. Her 2 dakikada bir buffer ve memory kontrolü yap
3. Donma olursa AŞAMA 4'teki komutları çalıştır
✅ BAŞARI KRİTERLERİ:
- [ ] Cihaz bilgileri toplanmış
- [ ] Player normal başlamış (isPlaying: true)
- [ ] Buffer yeterli (en az 10sn önde)
- [ ] Hız testi tamamlanmış (>2 Mbps)
- [ ] 3 şarkı sorunsuz çalınmış
- [ ] Memory sızıntısı yok (<200MB kullanım)
❌ SORUN TESPİT KRİTERLERİ:
- RAM < 4GB → Cihaz yetersiz
- Download < 2 Mbps → İnternet yavaş
- Buffer < 3sn → Stream sorunu
- Memory > 500MB → Bellek sızıntısı
- readyState < 4 → Yükleme sorunu
- networkState === 3 → Ağ hatası
📊 RAPOR:
Test bitiminde şu bilgileri raporla:
1. Cihaz özellikleri (RAM, CPU, tarayıcı)
2. İnternet hızı (download, latency)
3. Donma oldu mu? (evet/hayır, kaç kez)
4. Donma anındaki buffer durumu
5. Memory kullanımı (başlangıç vs bitiş)
6. Console hataları (varsa)
🎯 SONUÇ DEĞERLENDİRME:
- "Cihaz sorunu" → RAM < 4GB veya eski tarayıcı
- "İnternet sorunu" → Download < 2 Mbps veya yüksek latency
- "Sistem sorunu" → Yeterli cihaz + yeterli internet ama yine donma