Mobil cihazlara göre MP3 kalite seçimi
Ne yapıyor? Kullanıcının telefonuna göre müzik kalitesini otomatik ayarlıyor.
3 Seviye Var:
Neden önemli? Eski telefonlarda yüksek kalite takılmaya neden olur. Bu sistem herkesin akıcı dinlemesini sağlıyor.
┌─────────────────┐
│ Kullanıcı siteye girer
└────────┬────────┘
▼
┌─────────────────┐
│ JavaScript cihazı ölçer:
│ • RAM ne kadar?
│ • CPU kaç çekirdek?
│ • İnternet hızlı mı?
│ • Yeni model mi?
└────────┬────────┘
▼
┌─────────────────┐
│ Puan hesaplar ve
│ cookie'ye yazar:
│ mz_device = strong/good/weak
└────────┬────────┘
▼
┌─────────────────┐
│ Şarkı çalınca backend
│ cookie'yi okur ve
│ uygun kaliteyi seçer
└────────┬────────┘
▼
┌─────────────────┐
│ Bunny CDN'den
│ o kalitedeki dosyayı
│ kullanıcıya gönderir
└─────────────────┘
Sorun:
Safari tarayıcısı bazı ölçüm özelliklerini desteklemiyor:
navigator.deviceMemory → RAM ölçülemiyornavigator.connection → İnternet hızı ölçülemiyornavigator.hardwareConcurrency → CPU çekirdek sayısı çalışıyorÇözüm:
Safari'de yeni model cihazlara (iPhone 15+) ekstra puan veriyoruz:
| Kriter | Koşul | Puan |
|---|---|---|
| RAM | 6GB ve üzeri | +2 |
| RAM | 4-6GB arası | +1 |
| CPU | 6+ çekirdek | +2 |
| CPU | 4-6 çekirdek | +1 |
| İnternet | 4G bağlantı | +1 |
| Flagship (Chrome) | iPhone 15+, S23+, Pixel 8+ | +2 |
| Flagship (Safari) | iPhone 15+, iPad Pro M2+ | +4 |
Karar:
iPhone 15 Pro Max (Safari)
Toplam: 6 → STRONG ✓
iPhone 14 (Safari)
Toplam: 2 → WEAK
Samsung S24 (Chrome)
Toplam: 7 → STRONG ✓
Eski Android (Chrome)
Toplam: 1 → WEAK
audio.muzibu.com/
├── songs/
│ ├── original/ ← Strong cihazlar
│ │ ├── 51.mp3
│ │ ├── 52.mp3
│ │ └── ...
│ │
│ ├── mp3_128/ ← Good cihazlar
│ │ ├── 51.mp3
│ │ ├── 52.mp3
│ │ └── ...
│ │
│ └── mp3_64/ ← Weak cihazlar
│ ├── 51.mp3
│ ├── 52.mp3
│ └── ...
│
└── hls/ ← PC'ler (HLS streaming)
├── 51/
│ ├── master.m3u8
│ ├── segment-000.ts
│ └── ...
└── ...
iPhone 12, 13, 14 Safari'de WEAK çıkıyor çünkü:
İstersen iPhone 12-14'e de +2 puan ekleyebiliriz ki en azından good olsunlar.