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.

📊 Muzibu'daki Mevcut Değerler:

Normal Çalma 150 saniye (2.5 dakika)
Sonraki Şarkı Preload 600 saniye (10 dakika)

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.

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

⬆️ Hepsi aynı anda!

Progressive (Doğru)

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

seg-0 seg-1 seg-2

⬆️ 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?

1 Şarkı 1 çalarken, arka planda Şarkı 2 tamamen 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

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:

segment-001.ts → Şarkı parçası isteği
/api/track-hit → "30 sn dinledim" bildirimi
/thumb/... → Kapak resmi isteği
/debug-log → Hata/debug bildirimi

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