OPTİMİZE EDİLDİ v2 - Güncel

Player Teknik Terimler Sözlüğü

Müzik player'ın nasıl çalıştığını basitçe anlatan rehber

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:

Çalınan Buffer (Hazır) Henüz indirilmedi

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:

Normal Çalma
150 saniye 30 saniye
Sonraki Şarkı Preload
600 saniye 60 saniye

Çö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.

seg-0 seg-1 seg-2 ...

Hepsi aynı anda! (KALDIRILDI)

Progressive (Yeni)

Segmentler sırayla indiriliyor. Önce 3-4 segment, sonra ihtiyaç oldukça devamı.

seg-0 -> seg-1 -> seg-2

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?

1 Şarkı 1 çalarken, arka planda Şarkı 2'nin ilk 6-7 segmenti indiriliyor
2 Şarkı 1 bitmeden 1-2 saniye önce, Şarkı 2 hazır bekliyor
3 Şarkı 1 bitince anında Şarkı 2 başlıyor - sıfır bekleme

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:

segment-001.ts Şarkı parçası isteği
/api/track-hit "30 sn dinledim" bildirimi
/thumb/... Kapak resmi isteği
/debug-log Devre dışı (sadece hatalar)

%50 Azalma: Optimizasyon sonrası 90 saniyede 161 istek yerine 81 istek gidiyor.

Tamamlanan Optimizasyonlar

debug-log Production Guard

%100

Ne yapıldı: Her küçük olayda sunucuya log gönderilmesi engellendi, sadece hatalar loglanıyor.

14/şarkı 0/şarkı

track-hit Duplicate Guard

%50

Ne yapıldı: "30 saniye dinledim" bildirimi artık çift değil tek sefer gönderiliyor.

2/şarkı 1/şarkı

HLS Mevcut Şarkı Progressive

%75

Ne yapıldı: Çalan şarkı artık tamamı değil, ilk 3-4 segment indiriliyor, geri kalanı kademeli.

150sn (BURST) 30sn (Progressive)

HLS Preload Progressive

%59

Ne yapıldı: Sonraki şarkı preload'u artık tüm şarkıyı değil, ilk 6-7 segment indiriyor.

600sn, 17 segment 60sn, 7 segment

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:

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)