Bu Belge Ne İçin?
Muzibu'da bir şarkı çaldığında arka planda birçok şey oluyor. Network sekmesinde gördüğün istekler, segment dosyaları, buffer gibi kavramlar karmaşık görünebilir. Bu belge, tüm bu teknik terimleri günlük Türkçe ile açıklıyor.
HLS Nedir?
HTTP Live Streaming
📝 Basit Anlatım:
Şarkıyı küçük parçalara bölerek gönderme yöntemi. Tüm şarkıyı bir seferde indirmek yerine, 10'ar saniyelik parçalar halinde indiriyoruz.
🎯 Gerçek Hayat Örneği:
Bir pizza siparişi düşün. Tüm pizzayı bir seferde getirmek yerine, dilim dilim getiriyorlar. Sen ilk dilimi yerken, ikinci dilim yolda. HLS de aynı mantıkla çalışıyor - sen ilk parçayı dinlerken, sonraki parçalar indiriliyor.
Segment Nedir?
segment-000.ts, segment-001.ts...
📝 Basit Anlatım:
Şarkının küçük parçaları. Her segment yaklaşık 10 saniye müzik içeriyor.
📊 Örnek Hesaplama:
3 dakikalık şarkı
= 180 saniye
Her segment 10 saniye
= 18 segment
Network sekmesinde segment-000.ts,
segment-001.ts gibi dosyalar görüyorsan,
bunlar şarkının parçaları.
Buffer Nedir?
Tampon bellek / Ön yükleme alanı
📝 Basit Anlatım:
İndirilen ama henüz çalınmamış müzik parçalarının bekleme alanı. İnternet bir anlığına kesilse bile, buffer'daki müzik çalmaya devam eder.
🎯 Gerçek Hayat Örneği:
Bir su deposu gibi düşün. Musluktan su akarken (şarkı çalarken), depo sürekli dolduruluyor (segment indiriliyor). Şebeke bir an kesilse bile, depodaki su sayesinde akış devam ediyor.
🎵 Buffer Görselleştirmesi:
maxBufferLength Nedir?
Maksimum buffer uzunluğu (saniye)
📝 Basit Anlatım:
"Önceden kaç saniyelik müzik indirilsin?" sorusunun cevabı. Bu değer ne kadar yüksekse, o kadar fazla müzik önceden indiriliyor.
📊 Muzibu'daki Mevcut Değerler:
Sorun: 150 saniye çok yüksek! 3 dakikalık bir şarkının tamamı baştan indiriliyor. Kullanıcı 30. saniyede skip yapsa bile, kalan 2.5 dakikalık veri boşa gitmiş oluyor.
Burst vs Progressive Loading
Toplu yükleme vs Kademeli yükleme
Burst (Sorunlu)
Tüm segmentler aynı anda indiriliyor. Şarkı başlar başlamaz 15-20 istek birden gidiyor.
⬆️ Hepsi aynı anda!
Progressive (Doğru)
Segmentler sırayla indiriliyor. Önce 2-3 segment, sonra ihtiyaç oldukça devamı.
⬆️ Sırayla, gerektiğinde
🎯 Gerçek Hayat Örneği:
Burst: Marketten 1 aylık alışveriş yapmak -
belki yarısını kullanmadan çöpe atacaksın.
Progressive: Her gün ihtiyacın kadar almak -
israf yok, her şey taze.
Gapless Playback Nedir?
Kesintisiz çalma
📝 Basit Anlatım:
Bir şarkı bitip diğeri başlarken hiç sessizlik olmaması. Şarkılar arasında "tık" sesi veya boşluk yok, akıcı geçiş.
🎵 Nasıl Çalışıyor?
Bu yüzden "Sonraki Şarkı Preload" için buffer değeri (600 saniye) çok yüksek tutulmuş. Sonraki şarkının tamamı önceden yükleniyor ki geçişte donma olmasın.
Preload Nedir?
Önceden yükleme
📝 Basit Anlatım:
Henüz ihtiyaç olmadan sonraki içeriği hazırlamak. Kullanıcı "sonraki şarkı" demeden önce, o şarkı zaten arka planda indiriliyor.
🎯 Gerçek Hayat Örneği:
Restoranda ana yemek bitmeden tatlının hazırlanmaya başlaması gibi. Ana yemek bitince tatlı hemen geliyor - bekleme yok.
Request (İstek) Nedir?
Tarayıcının sunucuya gönderdiği talepler
📝 Basit Anlatım:
Tarayıcının sunucuya "şunu ver" demesi. Her segment, her resim, her API çağrısı bir request.
📊 Network Sekmesinde Gördüklerin:
Ne kadar az request olursa, sistem o kadar hızlı ve verimli çalışır. Gereksiz request'ler sunucuyu yorar ve bant genişliği harcar.
Tespit Edilen Sorunlar (Basitçe)
🔴 Sorun 1: debug-log Çok Fazla Çağrılıyor
Ne oluyor: Her küçük olayda sunucuya "log" gönderiliyor (8-10 kez/şarkı)
Çözüm: Sadece hata durumlarında log gönder ✅ (Uygulandı)
🔴 Sorun 2: track-hit Çift Gönderiliyor
Ne oluyor: "30 saniye dinledim" bildirimi 2 kez gönderiliyor
Çözüm: Aynı şarkı için 2 saniye içinde tekrar gönderme ✅ (Uygulandı)
🟡 Sorun 3: Tüm Şarkı Baştan İndiriliyor
Ne oluyor: 3 dakikalık şarkının 15-20 parçası aynı anda indiriliyor (Burst)
Çözüm: Buffer değerini düşür (150 → 30 saniye) ⏳ (Tartışılıyor)
Hızlı Başvuru Sözlüğü
| Terim | Türkçe | Basit Açıklama |
|---|---|---|
| HLS | Canlı Akış | Şarkıyı parça parça gönderme yöntemi |
| Segment | Parça | ~10 saniyelik müzik dosyası |
| Buffer | Tampon | İndirilmiş ama çalınmamış müzik deposu |
| maxBufferLength | Maks. Buffer | Önceden kaç saniyelik müzik indirilsin |
| Burst | Toplu | Tüm parçaları aynı anda indirme (kötü) |
| Progressive | Kademeli | Parçaları sırayla indirme (iyi) |
| Gapless | Kesintisiz | Şarkılar arası boşluk olmadan çalma |
| Preload | Ön Yükleme | Sonraki şarkıyı önceden hazırlama |
| Request | İstek | Tarayıcının sunucudan bir şey istemesi |
| track-hit | Dinleme Sayacı | 30 sn dinleyince play sayısını artır |
| debug-log | Hata Kaydı | Player'ın durumunu sunucuya bildirmesi |