🎧 HLS + MP3 Dual Audio System
Ne işe yarar: Müzik dosyalarınız iki farklı formatta oynatılır: HLS (yayın kalitesi) ve MP3 (normal kalite). Sistem otomatik olarak en uygun formatı seçer.
Teknik Detaylar:
- HLS.js - Yayın kalitesi streaming
- Howler.js - MP3 oynatma
- player-core.js:700-850 - Akıllı format seçimi
- Otomatik fallback: HLS hata verirse MP3'e geçiş
🔀 Akıllı Karıştırma (Fisher-Yates Algoritması)
Ne işe yarar: Şarkıları gerçekten rastgele karıştırır. Aynı şarkı tekrar çalmaz, adil dağılım garantili.
Teknik Detaylar:
- player-core.js:331-339 - Fisher-Yates shuffle
- Gerçek rastgelelik (Math.random() değil)
- Mevcut şarkı korunur, kalanlar karıştırılır
🎵 Crossfade (5 Saniye)
Ne işe yarar: Şarkı geçişlerinde kesintisiz akış. Bir şarkı biterken diğeri yumuşak giriş yapar.
Teknik Detaylar:
- player-core.js:122-123 - 5 saniye crossfade
- Otomatik geçişler: 5 saniye
- Duraklat/Çal: 5 saniye fade
- Önizleme: 25. saniyede fade başlar
🔁 Gelişmiş Tekrar Modları
Ne işe yarar: 3 farklı tekrar modu: Kapalı, Tümünü Tekrarla, Tek Şarkıyı Tekrarla.
Teknik Detaylar:
- player-core.js:376-390 - Döngü kontrolü
- Mod1: off (normal akış)
- Mod2: all (playlist tekrarı)
- Mod3: one (tek şarkı döngü)
📱 Responsive Player Bar
Ne işe yarar: Mobil, tablet, desktop'ta mükemmel çalışır. Ekran boyutuna göre kendini ayarlar.
Teknik Detaylar:
- player.blade.php:1-81 - Grid layout
- Mobile: Tek sütun (kontroller öncelikli)
- Tablet: İki sütun (şarkı + kontroller)
- Desktop: Üç sütun (tam kontrol)
🎚️ Ses Kontrolü (Varsayılan %100)
Ne işe yarar: Ses seviyesi ayarı. İlk açılışta %100, sonraki açılışlarda son ayarınız hatırlanır.
Teknik Detaylar:
- player-core.js:103 - Default 100%
- localStorage'da hatırlama
- Mouse wheel ile kontrol
- Klavye kısayolları (↑/↓)
⏯️ Play/Pause Toggle
Ne işe yarar: Şarkıyı çal/duraklat. Buton, Space tuşu veya K tuşu ile çalışır.
Teknik Detaylar:
- player-core.js:583-629 - Toggle logic
- HLS ve MP3 desteği
- Fade-out/in efekti (5 saniye)
⏩ Önceki/Sonraki Şarkı
Ne işe yarar: Sıradaki veya önceki şarkıya geçiş. Shuffle açıksa rastgele, kapalıysa sırayla.
Teknik Detaylar:
- player-core.js:1334-1398 - Track navigation
- Repeat mode desteği
- Shuffle awareness
⏱️ Progress Bar & Seek
Ne işe yarar: Şarkının neresinde olduğunuzu gösterir. Tıklayarak istediğiniz yere atlayabilirsiniz.
Teknik Detaylar:
- player-core.js:1400-1450 - Seek logic
- Gerçek zamanlı güncelleme (her saniye)
- Tıklama ile atlama
- Klavye (←/→) 5 saniye ileri/geri
📝 Sıraya Ekleme (API)
Ne işe yarar: Şarkı, albüm, playlist, genre, sector listesini sıraya ekler. Çalan şarkıyı kesmeden devam eder.
Teknik Detaylar:
- player-core.js:1535-1590 - Queue management
- 5 farklı tip: song, album, playlist, genre, sector
- API üzerinden dinamik yükleme
- Toast bildirim
🎤 Senkronize Şarkı Sözleri
Ne işe yarar: Şarkı sözleri şarkıyla senkronize gösterilir. O an söylenen kısım parlak, diğerleri soluk.
Teknik Detaylar:
- lyrics-overlay.blade.php - Lyrics UI
- Gerçek zamanlı senkronizasyon
- Overlay panel (sağdan açılır)
- Klavye kısayolu: Y tuşu
👤 Misafir Limit (1 Şarkı)
Ne işe yarar: Giriş yapmayan kullanıcılar sadece 1 şarkı dinler, sonra kayıt ol uyarısı alır.
Teknik Detaylar:
- player-core.js:997-1010 - Guest check
- localStorage sayaç (geçici)
- Modal uyarı (kayıt ol)
🎵 Üye Preview (30 Saniye)
Ne işe yarar: Premium olmayan üyeler her şarkıyı 30 saniye dinler. Premium üyeler sınırsız.
Teknik Detaylar:
- player-core.js:1055-1120 - Preview logic
- 25. saniyede fade-out (5 saniye)
- 30. saniyede stop + toast
- Premium kontrolü: user.is_premium
📊 Günlük Limit Takibi
Ne işe yarar: Üyelerin günlük kaç şarkı dinlediği takip edilir. Limit dolunca premium üyelik önerilir.
Teknik Detaylar:
- player-core.js:1011-1035 - Daily tracking
- Backend: SongPlay model
- API: /api/muzibu/songs/{id}/play
🔒 Play Limits Modals
Ne işe yarar: Limit dolunca modern modal ekranlar gösterilir. Üyelik teşviki.
Teknik Detaylar:
- play-limits-modals.blade.php - UI
- Misafir, üye, günlük limit modalları
- Premium plan gösterimi
🎯 Frontend Auth Modal (SPA)
Ne işe yarar: Kullanıcı giriş/kayıt yapmak isterse sayfa yenilenmeden modal açılır.
Teknik Detaylar:
- auth-modal.blade.php - Modal UI
- auth.js:15-150 - Form handling
- x-teleport ile global render
- SPA Navigation (sayfa yenilenmez)
📈 Play History (Dinleme Geçmişi)
Ne işe yarar: Kullanıcıların hangi şarkıları ne zaman dinlediği kaydedilir.
Teknik Detaylar:
- SongController.php:23-82 - Recent songs API
- Database: muzibu_song_plays tablosu
- API: /api/muzibu/songs/recent
- Son dinlenenler, tekrarlar filtrelenir
⏸️ Session Check (Oturum Kontrolü)
Ne işe yarar: Kullanıcı başka yerden giriş yaparsa mevcut oturum sonlanır. Modal ile bilgilendirilir.
Teknik Detaylar:
- session-check.blade.php - Polling
- Her 30 saniyede kontrol
- Backend: /api/auth/session-check
🚀 Redis Cache (30 Dakika TTL)
Ne işe yarar: Sık kullanılan veriler (popüler şarkılar, playlists) Redis'te önbelleklenir. Hız artar.
Teknik Detaylar:
- MuzibuCacheService.php - Cache service
- 30 dakika TTL (otomatik temizlenir)
- Featured playlists, popular songs
💾 LocalStorage State Management
Ne işe yarar: Ses seviyesi, shuffle, repeat ayarlarınız tarayıcıda hatırlanır.
Teknik Detaylar:
- safe-storage.js - Güvenli storage wrapper
- Volume, shuffle, repeat ayarları
- Privacy mode desteği (error handling)
🎨 Lazy Loading & Thumbnails
Ne işe yarar: Görseller sadece görünür olduğunda yüklenir. Küçük boyutlu thumbnail'ler kullanılır.
Teknik Detaylar:
- loading="lazy" attribute
- thumb() helper - Otomatik resize
- 56x56, 400x400 boyutları
🎹 Gelişmiş Klavye Kısayolları (18 Tuş)
Ne işe yarar: Mouse kullanmadan player'ı kontrol edersiniz. Space = çal/duraklat, ←/→ = ileri/geri, vs.
Teknik Detaylar:
- keyboard.js:27-250 - 18 kısayol
- Space/K: Play/Pause
- ←/→ veya J/L: 5sn ileri/geri
- ↑/↓: Ses artır/azalt
- M: Sessiz, S: Shuffle, N: Sonraki, P: Önceki
- F: Favori, Q: Sıra, Y: Lyrics, ?: Yardım
- 0-9: Sıradan şarkı çal
- keyboard-shortcuts-overlay.blade.php - Yardım paneli
📜 Queue Overlay (Sıra Paneli)
Ne işe yarar: Çalma sırasını gösterir, sırayı değiştirebilirsiniz. Şarkı silme/taşıma.
Teknik Detaylar:
- queue-overlay.blade.php - Sağdan açılır
- Drag & drop (gelecek)
- Şarkı silme, tümünü temizle
- Klavye kısayolu: Q tuşu
❤️ Favori Toggle (Kalp Butonu)
Ne işe yarar: Beğendiğiniz şarkıyı favori listesine eklersiniz. Kalp kırmızı olur.
Teknik Detaylar:
- favorites.js:15-80 - Toggle logic
- API: /api/favorites/toggle
- Gerçek zamanlı UI güncelleme
- Klavye kısayolu: F tuşu
🌈 Modern Gradient Tasarım
Ne işe yarar: Koyu tema, gradient renkler, cam efekti (backdrop-blur). Göz yormaz, profesyonel görünüm.
Teknik Detaylar:
- Muzibu-coral (#ff7f50) ana renk
- Dark mode: bg-black, bg-muzibu-dark
- Backdrop blur: backdrop-blur-md
📱 Bottom Navigation (Mobil)
Ne işe yarar: Mobilde altta sabit menü kalır. Ana Sayfa, Keşfet, Favoriler, Profil.
Teknik Detaylar:
- bottom-nav.blade.php - Fixed bottom
- Sadece mobil görünür (lg: hidden)
- 4 ana sayfa linki
🔔 Toast Notifications
Ne işe yarar: Başarı, hata, bilgi mesajları ekranın sağ üstünde gösterilir. 3 saniye sonra kaybolur.
Teknik Detaylar:
- muzibu-toast.js - Alpine store
- Alpine.store('toast').show()
- 4 tip: success, error, warning, info
🎭 SPA Navigation (Sayfa Yenilenmez)
Ne işe yarar: Sayfa geçişlerinde müzik devam eder. Sayfa yenilenmez, sadece içerik değişir.
Teknik Detaylar:
- player-core.js:172-240 - Link interception
- History API ile URL yönetimi
- Fetch ile dinamik içerik
🔍 Universal Search (Meilisearch)
Ne işe yarar: Arama yaparken şarkı, albüm, sanatçı, playlist aynı anda aranır. Çok hızlı.
Teknik Detaylar:
- UniversalSearchService.php - Search service
- Meilisearch full-text search
- Multi-index: songs, albums, artists, playlists
🎬 Sidebar Panels (3 Adet)
Ne işe yarar: Sağ sidebar: Queue, Lyrics, Keyboard Help. Overlay paneller slide-in efekti ile açılır.
Teknik Detaylar:
- Queue: queue-overlay.blade.php
- Lyrics: lyrics-overlay.blade.php
- Keyboard: keyboard-shortcuts-overlay.blade.php
- x-transition slide-in-right
📈 Play Tracking (SongPlay Model)
Ne işe yarar: Her dinleme kaydedilir: Kim, ne zaman, hangi cihazdan, IP adresi.
Teknik Detaylar:
- SongPlay.php - Model
- muzibu_song_plays - Tablo
- user_id, song_id, ip_address, user_agent, device_type
🏆 Popular Songs (Redis Cache)
Ne işe yarar: En çok dinlenen şarkılar listelenir. 30 dakika cache ile hızlı gösterim.
Teknik Detaylar:
- SongController.php:90-100 - Popular API
- MuzibuCacheService::getPopularSongs()
- Redis TTL: 30 dakika
📊 Statistics Methods
Ne işe yarar: Admin panelde istatistikler gösterilir: Saatlik dağılım, cihaz dağılımı, top şarkılar.
Teknik Detaylar:
- SongPlay::getTopSongs()
- SongPlay::getDeviceDistribution()
- SongPlay::getHourlyDistribution()
🎯 Today's Play Count Widget
Ne işe yarar: Kullanıcı bugün kaç şarkı dinlediğini görebilir. Limit takibi için.
Teknik Detaylar:
- play-limits-widget.blade.php - UI
- Gerçek zamanlı güncelleme
- Premium/Free ayrımı
🎚️ Crossfade Optimizasyonu (5 Saniye)
Ne işe yarar: TÜM fade süreleri 5 saniye ile standartlaştırıldı. Daha yumuşak geçişler.
Teknik Detaylar:
- player-core.js:122-123 - 5000ms crossfade
- Otomatik geçiş: 5 saniye
- Pause/Play fade: 5 saniye
- Preview fade: 5 saniye (25. saniyede başlar)
⌨️ Klavye Kısayolları Overlay Redesign
Ne işe yarar: Minimal, profesyonel klavye kısayolları yardımı. Türkçe, dar panel, temiz tasarım.
Teknik Detaylar:
- keyboard-shortcuts-overlay.blade.php - Redesign
- Genişlik: 320px (w-80)
- Minimal padding/margin
- Türkçe labels
- text-muzibu-text-gray renk (diğer ikonlarla uyumlu)
💾 Sıra Hatırlama (Queue Persistence)
Ne işe yarar: Sayfa yenilendiğinde veya tarayıcıyı kapattığınızda çalma sıranız kaybolmaz. Kaldığınız yerden devam edersiniz.
Basit Açıklama:
- Playlist dinlerken tarayıcı kapansa da sıra korunur
- Açınca kaldığınız şarkıdan devam eder
- B2B (İşyeri) modu: Playlist bitince baştan başlar, sonsuz döngü
- Örnek: Starbucks'ta müzik bitince sessizlik olmaz, tekrar başlar
📺 Chromecast Desteği
Ne işe yarar: Müziği Chromecast cihazlara (TV, hoparlör) gönderebilirsiniz. Telefondan kontrol, TV'den ses.
Basit Açıklama:
- Akıllı TV'nizde Muzibu müziği çalabilirsiniz
- Google Home hoparlörüne müzik gönderebilirsiniz
- Telefon/tablet uzaktan kumanda gibi çalışır
- Örnek: YouTube'u TV'ye göndermek gibi, ama müzik için
📴 Offline Mod (DRM Korumalı)
Ne işe yarar: Premium üyeler şarkıları indirir, internetsiz dinler. Ama DRM korumalı, kopyalanamazlar.
Basit Açıklama:
- Uçakta, metroda internet olmadan müzik dinlersiniz
- Şarkılar telefonunuza indirilir ama sadece Muzibu'da açılır
- Başkasına gönderemezsiniz, sadece sizin hesabınızda çalar
- Örnek: Spotify offline modu gibi
🔔 Media Session API (Bildirim Kontrolü)
Ne işe yarar: Telefonun kilit ekranından ve bildirim merkezinden player'ı kontrol edersiniz. Şarkı adı, kapak görseli görünür.
Basit Açıklama:
- Telefon kilitliyken şarkı değiştirebilirsiniz
- Bildirim barında albüm kapağı ve şarkı adı görünür
- Çal/duraklat/sonraki butonları bildirimde çıkar
- Örnek: Spotify veya YouTube Music gibi kilit ekranı kontrolü
⚡ Hız Kontrolü (0.5x - 2x)
Ne işe yarar: Şarkıyı daha hızlı veya daha yavaş dinlersiniz. Müziğin tonunu bozmadan hız değişir.
Basit Açıklama:
- 0.5x: Yavaşlatılmış dinleme (enstrümanları ayırt etmek için)
- 1.5x: Biraz hızlandırılmış (daha enerjik)
- 2x: İki kat hızlı (arka planda oynarken)
- Örnek: YouTube'da videoları hızlandırmak gibi, ama müzik için
🎚️ Equalizer (10 Bantlı)
Ne işe yarar: Ses frekanslarını ayarlarsınız. Bass (bas) artırır, treble (tiz) azaltırsınız. Her kulağa göre özelleştirme.
Basit Açıklama:
- Bass boost: Bas sesleri güçlendirir (elektronik müzik için)
- Vocal boost: İnsan sesini öne çıkarır
- Treble: Tiz sesleri netleştirir
- Örnek: Spotify'ın equalizer ayarları gibi
🔊 Ses Normalizasyonu
Ne işe yarar: Tüm şarkılar aynı ses seviyesinde çalar. Bir şarkı çok yüksek, diğeri çok düşük olmaz.
Basit Açıklama:
- Eski kayıtlar sessiz gelirse otomatik artırılır
- Yeni kayıtlar çok yüksek gelirse otomatik azaltılır
- Ses seviyesini sürekli ayarlamanız gerekmez
- Örnek: Netflix'te reklamlar daha yüksek gelmez, aynı seviye
🎨 Ses Dalgası Görselleştirme
Ne işe yarar: Şarkı çalarken ses dalgalarını gösterir. Şarkının hangi kısmında olduğunuzu görsel olarak görürsünüz.
Basit Açıklama:
- Şarkının hangi kısmında olduğunuzu görsel olarak görürsünüz
- Ses yüksek olan yerler dalgada büyük görünür
- Tıklayarak istediğiniz yere atlayabilirsiniz
- Örnek: SoundCloud progress bar gibi, ama ses dalgalarıyla
📱 Mini Player
Ne işe yarar: Sayfayı scroll ederken player yukarı küçülür, ekranın köşesinde kalır. Müzik devam eder, kontroller her zaman erişilebilir.
Basit Açıklama:
- Sayfa aşağı kaydırınca player küçülür, ekranın üstünde sabit kalır
- Çal/duraklat/sonraki butonları her zaman görünür
- Şarkı listesini gezerken müziği kontrol edebilirsiniz
- Örnek: YouTube'da küçük video player gibi, ama müzik için
🎵 Gapless Playback (Kesintisiz Geçiş)
Ne işe yarar: Şarkı geçişlerinde hiç sessizlik olmaz. Bir şarkı biter bitmez diğeri başlar (crossfade olmadan).
Basit Açıklama:
- Canlı konser kayıtlarında şarkılar arasında boşluk olmaz
- Albüm dinlerken doğal akış bozulmaz
- Crossfade kapatılsa bile sessizlik olmaz
- Örnek: Pink Floyd albümlerinde şarkılar birbirine bağlı, kesinti olmamalı
🎨 Dinamik Renk Teması (Album Art)
Ne işe yarar: Player'ın renkleri şarkının albüm kapağından otomatik alınır. Her şarkı kendine özgü renk teması oluşturur.
Basit Açıklama:
- Mavi tonlu albüm kapağı → Player maviye döner
- Kırmızı tonlu kapak → Player kırmızıya döner
- Her şarkı görsel olarak farklı atmosfer yaratır
- Örnek: Spotify'ın albüm rengine göre arka plan değiştirmesi
📊 Kalite Seçimi (128/256/320 kbps)
Ne işe yarar: İnternet hızınıza göre müzik kalitesini seçersiniz. Yavaş internet → düşük kalite, hızlı internet → yüksek kalite.
Basit Açıklama:
- 128 kbps: Düşük internet hızı için (mobil veri tasarrufu)
- 256 kbps: Orta kalite (dengeli)
- 320 kbps: Yüksek kalite (WiFi'de premium ses)
- Örnek: YouTube'da 480p/720p/1080p seçmek gibi, ama ses için
🎤 Karaoke Modu (Vokal Azaltma)
Ne işe yarar: Şarkıdaki insan sesini azaltır, enstrümanları öne çıkarır. Karaoke gibi şarkı söyleyebilirsiniz.
Basit Açıklama:
- Şarkıcının sesi azalır, müzik kalır
- Karaoke yapmak için şarkıya eşlik edebilirsiniz
- Enstrümanları net duyarsınız
- Örnek: YouTube'da "karaoke version" videoları gibi