22 Subat / v1 / v2 (guncel)

Soft Mode & Format Sistemi

Kim neyi dinleyecek? Sistem nasil karar verecek? Her seyin basit anlatimi.

22 Subat 2026 v2 mztest.muzibu.com

Muzibu Kimlere Hizmet Veriyor?

Bu bir bireysel muzik uygulamasi degil. B2B isletme platformu.

Restoran & Kafe
Tavan hoparloru, amfi sistemi
Otel & Lobi
Zon bazli ses sistemi
Magazalar & AVM
Profesyonel ses altyapisi

Kritik Gercek: Cihazlar Kotu, Ses Sistemi Iyi

Isletmelerin Cihazlari

  • Eski Android tabletler (2-3 GB RAM)
  • Ucuz cep telefonlari
  • Eski donanim Windows ekranlar
  • Kasadaki eski bilgisayar

Ama Ses Sistemi

  • Profesyonel tavan hoparloru
  • Amfi + kolonsuz sistem
  • 128kbps fark edilir!
  • Orijinal kalite (320k) sart

Sonuc: Cihaz kotu diye kaliteden odun veremeyiz.
Muzik ses sisteminden cikiyor — 128kbps profesyonel hoparlorde duyulur. Orijinal MP3 (320k) sart.


Iki Farkli Dinleme Sekli

Sarkılar iki sekilde dinlenebilir. Isletme hangisini dinledigini bilmez, sunucu sessizce karar verir.

HLS

PC & Guclu Cihazlar

  • Internete gore kalite otomatik ayarlanir
  • 4 kalite seviyesi (ultralow → original)
  • Sifreli — kopyalanamaz (AES-128)
  • 4sn segment = donma yok
Hedef Cihaz
Masaustu / Laptop

MP3 Orijinal

Mobil & Tablet (Soft Mode)

  • Tek dosya, tek istek — basit ve hafif
  • Islemci neredeyse hic calismaz
  • HLS kutuphanesi yuklenmez (140 KB tasarruf)
  • Orijinal kalite — ses sisteminden iyi duyulur
Hedef Cihaz
Telefon / Tablet / Eski Ekran

Neden 128k Degil? Orijinal MP3 Neden?

v1'de "128k yeterli, telefon hoparloru fark etmez" demistik. Ama durum degisti:

v1'deki Yanlis Varsayim

"Kotu cihaz = telefon hoparloru, 128k yeter."

Bu bireysel kullanim icin dogru. Ama Muzibu bireysel degil.

v2 Gercek Durum

"Kotu cihaz + profesyonel ses sistemi. 128k yetmez!"

Isletme eski tabletinden kontrol eder, ama ses amfiden cikar.

Ses Sistemi + Kalite Iliskisi

128 kbps
Profesyonel hoparlorde
kalite farki duyulur
256 kbps
Iyi ama orijinal
varken neden?
320 kbps (Orijinal)
Ses sisteminden
en iyi kalite

128k MP3 hala sunucuda kalir — admin zorlama veya acil bant genisligi tasarrufu icin


Nasil Calisiyor? (Sunucu Tarafli Tespit)

v1'de "tarayici cihazi olcsun" diyorduk. v2'de sunucu karar veriyor — daha guvenilir, daha basit.

v1 Yaklasimi (Iptal Edildi)

  • Frontend JavaScript ile RAM/CPU olc
  • Sonucu localStorage'a yaz
  • API'ye "ben zayifim" gondir
  • Sorun: JavaScript manipule edilebilir, guvenilmez

v2 Yaklasimi (Aktif)

  • Sunucu User-Agent'tan cihazi tespit eder
  • jenssegers/agent paketi (zaten yuklu)
  • Mobil/Tablet → MP3 Orijinal
  • Avantaj: Kullanici mudahale edemez, sunucu karar verir

Teknik: resolveAudioFormat() Karar Zinciri

// SongStreamController.php
1. Admin bu kullaniciya format atamis mi? → evet: o formati kullan
2. Kurumsal hesap (50+ kisi) mi? → evet: MP3
3. Mobil veya Tablet mi? → evet: MP3 Orijinal (320k)
4. Hicbiri → HLS (adaptif, sifreli)

Gercek Hayat Senaryolari

Isletmelerde karsilasilan durumlar ve sistem ne yapar:

Eski Tablet
+
Iyi Internet
+
Ses Sistemi
MP3 Orijinal (320k)

Kafe senaryosu: Eski Android tablet kasanin yaninda, muzik tavan hoparlorundan. HLS tableti yorar, MP3 orijinal = tam kalite + sifir donma.

PC / Laptop
+
Iyi Internet
HLS (mid → original)

Ofis/lobi senaryosu: Bilgisayar var, internet stabil. En iyi deneyim — adaptif kalite, sifreli icerik.

Eski Windows Ekran
+
Iyi Internet
HLS (adaptif)

Windows = PC olarak algilanir → HLS. Eski donanimda yavaslama olursa admin o kullaniciya MP3 atayabilir.

Telefon / Tablet
+
Kotu Internet
MP3 Orijinal (320k)

En kotu senaryo. MP3 320k = ~2.4 MB/dk. 3G'de bile akar. Donma yok, ses sistemi kaliteli duyar.


Karar Agaci: Sunucu Nasil Karar Veriyor?

Yukaridan asagiya, ilk eslesen kural gecerli. Tum karar sunucuda verilir.

1

Admin bu kullaniciya format atamis mi?

AKTIF

Admin panelden "Bu isletmeye MP3 ver" denebilir. Denmisse tartisma yok, o gecerli.

HLS Zorla MP3 Zorla Otomatik (sonraki adima gec)
2

Kurumsal hesap mi? (50+ kisi)

AKTIF

Sirket hesabinda 50'den fazla kisi varsa hepsi MP3'e yonlendirilir. Sunucu maliyeti duser.

50+ kisi → MP3 Orijinal 50'den az → sonraki adima gec
3

Mobil veya Tablet mi? (User-Agent)

AKTIF

Sunucu User-Agent basligini okur. Kullanici hicbir sey yapmaz, fark etmez bile.

Mobil / Tablet

Android, iPhone, iPad...

→ MP3 Orijinal (320k)
PC / Laptop

Windows, Mac, Linux

→ HLS (adaptif)
4

Hicbiri → HLS (Varsayilan)

PC, kurumsal degil, admin karismamis → en iyi deneyim, adaptif kalite, sifreli.

AKTIF

Admin Paneli

Bir isletme "donuyor" dedi. Admin ne yapacak?

Kullanici Duzenle Sayfasi

Otomatik (Onerilen)
Otomatik — Mobil/Tablet → MP3 Orijinal, PC → HLS. Sunucu karar verir.
HLS Zorla — Her cihazda HLS. PC'si varsa ama otomatik MP3'e dusuyorsa bunu sec.
MP3 — Her cihazda orijinal MP3. PC'de HLS sorun yasiyorsa bunu sec.

"Donuyor" derlerse → MP3 sec, kaydet. O isletme hangi cihazdan girerse girsin MP3 dinler. Kalite dusmez (orijinal).


HLS Segment Suresi

HLS'te sarkilar kucuk parcalara (segment) bolunur. Her parca ayri ayri indirilir.

Karar: Tum Kaliteler 4 Saniye

ultralow
4 sn
16 KB/parca
low
4 sn
32 KB/parca
mid
4 sn
64 KB/parca
original
4 sn
~100 KB/parca
Tum kaliteler ayni sure → gecis sirasinda bosluk yok
4 saniye = hizli kalite gecisi (internet dusunce 4sn icinde uyum)
ConvertToHLSJob.php guncellendi: hls_time 6 → 4

Yeni Sarki Yuklenince Ne Olur?

Admin panelden sarki yuklendiginde otomatik olarak sunlar uretilir:

1
HLS Original
Kaynak dosyanin orijinal kalitesi, AES-128 sifreli, 4sn segmentler
OTOMATIK
2
HLS Variant'lar (ultralow / low / mid)
32k, 64k, 128k — yavas internet icin otomatik kalite gecisi
OTOMATIK
3
MP3 128k (Yedek)
Admin zorlamasi veya acil bant genisligi tasarrufu icin yedek dosya
OTOMATIK
4
master.m3u8
4 kalite seviyesini listeleyen ana dosya (ultralow, low, mid, original)
OTOMATIK

Tum bunlar arkaplanda calisir. Admin sadece MP3 yukler, gerisini sistem halleder.


v1'den v2'ye Neler Degisti?

DEGISTI
MP3 128k → MP3 Orijinal (320k)

Isletmeler ses sisteminden dinliyor. 128kbps profesyonel hoparlorde yetersiz. Orijinal kalite sart.

DEGISTI
Cihaz Tespiti: Frontend JS → Sunucu User-Agent

localStorage + JavaScript yerine sunucuda jenssegers/agent ile User-Agent analizi. Daha guvenilir, manipule edilemez.

DEGISTI
"high" → "original" Yeniden Adlandirma

HLS en yuksek kalite seviyesinin adi "high" idi, "original" olarak degistirildi (anlamli isimlendirme).

YENI
Isletme Baglami Eklendi

B2B platform oldugu, isletmelerin kotu cihaz + iyi ses sistemi kullandigi netlestirildi.

YENI
hls_time 6 → 4 (ConvertToHLSJob)

Yeni sarkilarda tum kaliteler 4sn segment ile uretilecek. Hizli ABR gecisi, donma riski sifir.


Mevcut Durum

Tamamlanan Isler

resolveAudioFormat() — Admin > Kurumsal > Cihaz > Varsayilan zinciri
audio_preference migration + Model + Admin panel dropdown
User-Agent tespiti (jenssegers/agent) — Mobil/Tablet → MP3
MP3 Orijinal serve (128k yerine 320k)
ConvertToHLSJob: hls_time 6 → 4 guncellendi
Yeni sarki yukleme: 4 HLS variant + MP3 128k otomatik uretim
5 test sarkisi: tum variant'lar + MP3 128k mevcut
"high" → "original" isimlendirme (HLSService.php)

Kalan Isler

KOD "high" → "original" tum dosyalarda tamamla

SongStreamController, player-core.js, performance-debug.js, AddHlsVariantsCommand

BATCH 5 test sarkisini 4sn + "original" ile yeniden encode

Mevcut high segmentler 6sn → hepsini 4sn olarak yeniden olustur + master.m3u8 guncelle

BUG HLS keyLoadError cozumu

HLS.js'de "after key load, decryptdata unset or changed" hatasi. 3 kok neden tespit edildi, arastirma devam ediyor.

TEST Mobil/Tablet MP3 calma testi

Mobil User-Agent ile istek atildiginda orijinal MP3'in dogru sunuldugunu dogrula