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.
Optimizasyon Sonrası Değerler:
Çözüldü: Artık sadece ilk 3-4 segment indiriliyor, geri kalanı kademeli (progressive) geliyor. Kullanıcı 30. saniyede skip yapsa bile fazla veri israf olmaz.
Burst vs Progressive Loading
Toplu yükleme vs Kademeli yükleme
Burst (Eski)
Tüm segmentler aynı anda indiriliyordu. Şarkı başlar başlamaz 15-20 istek birden gidiyordu.
Hepsi aynı anda! (KALDIRILDI)
Progressive (Yeni)
Segmentler sırayla indiriliyor. Önce 3-4 segment, sonra ihtiyaç oldukça devamı.
Sırayla, gerektiğinde (AKTIF)
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?
KORUNDU: Buffer optimizasyonu yapılırken gapless özelliği korundu. 60 saniyelik preload buffer, kesintisiz geçiş için fazlasıyla yeterli.
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:
%50 Azalma: Optimizasyon sonrası 90 saniyede 161 istek yerine 81 istek gidiyor.
Tamamlanan Optimizasyonlar
debug-log Production Guard
%100Ne yapıldı: Her küçük olayda sunucuya log gönderilmesi engellendi, sadece hatalar loglanıyor.
track-hit Duplicate Guard
%50Ne yapıldı: "30 saniye dinledim" bildirimi artık çift değil tek sefer gönderiliyor.
HLS Mevcut Şarkı Progressive
%75Ne yapıldı: Çalan şarkı artık tamamı değil, ilk 3-4 segment indiriliyor, geri kalanı kademeli.
HLS Preload Progressive
%59Ne yapıldı: Sonraki şarkı preload'u artık tüm şarkıyı değil, ilk 6-7 segment indiriyor.
Gapless Playback
KORUNDUŞarkılar arası kesintisiz geçiş özelliği korundu. Donma yok.
Kalan Sorun: Thumbnail Tekrarı
Aynı kapak resmi hala 3-6 kez indiriliyor. Bu sorun birden fazla kaynaktan besleniyor:
- Mobile player cover (100x100)
- Desktop player cover (120x120)
- Queue overlay cover (56x56)
- Lyrics overlay cover (80x80)
- MediaSession artwork (6 farklı boyut)
Bu sorun ayrı bir görev olarak ele alınacak.
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 | 30sn (optimize edildi) |
| Burst | Toplu | Tüm parçaları aynı anda indirme (kaldırıldı) |
| Progressive | Kademeli | Parçaları sırayla indirme (aktif) |
| Gapless | Kesintisiz | Şarkılar arası boşluk olmadan çalma |
| Preload | Ön Yükleme | 60sn (optimize edildi) |
| Request | İstek | %50 azaldı (161 -> 81) |
| track-hit | Dinleme Sayacı | 1/şarkı (duplicate fix) |
| debug-log | Hata Kaydı | Sadece hatalar (production guard) |