İnternetinize ve kulaklığınıza göre en uygun kalite
Müzik dinlerken ses kalitesi çok önemli! Ama herkesin internet hızı veya mobil veri paketi aynı değil. İşte bu yüzden Muzibu'da kullanıcılar kendi tercihlerini yapabiliyor.
WiFi'da otomatik olarak en yüksek kalite seçilirken, mobil veri'de kullanıcının belirlediği kalite kullanılıyor.
Ses kalitesi ayarlandığında ve şarkı çalarken arka planda şu işlemler gerçekleşir:
Kullanıcı ayarlardan "Yüksek Kalite" seçtiğinde bu tercih localStorage'a ve sunucuya kaydedilir. Sonraki oturumlarda aynı ayar otomatik uygulanır. Premium kullanıcılar 256kbps'e erişebilir.
localStorage.setItem('preferred_quality', 'high'); // 256kbps
HLS segmentleri AAC codec ile encode edilir. 44.1kHz sample rate kullanılır (CD kalitesi). Stereo ses için 2 kanal desteklenir. Web Audio API ile tarayıcı bu formatı native olarak çözer.
AudioContext.decodeAudioData() - 44100Hz, 2 channels, AAC
Farklı şarkılar arası ses seviyesi farkını azaltmak için loudness normalization uygulanır. Encoding sırasında ReplayGain değeri hesaplanır ve playback'te kullanılır.
ffmpeg -af loudnorm=I=-16:TP=-1.5 // EBU R128 standardı
Mobil ağda otomatik olarak düşük kaliteye (64kbps) geçilir. Kullanıcı isterse bu özelliği kapatabilir. WiFi'da yüksek kaliteye geri dönülür.
if (connection.type === 'cellular') { hls.nextLevel = 0; } // 64kbps
Bluetooth kulaklık bağlandığında codec desteği kontrol edilir. AAC destekleniyorsa transcoding gerektirmez. Aksi halde SBC'ye çevrilir ve kalite kaybı olabilir.
navigator.bluetooth.getDevices() // Cihaz codec kontrolü