MOBİL FIX PLAYER SAFARI

Mobil iOS Player Fix'leri

28 Aralık 2025 - muzibu.com

Basit Anlatım (Herkes İçin)

Sorun: Mobil iOS (Safari) cihazlarda şarkı bittiğinde bir sonraki şarkıya geçmiyordu. Queue (sıra) sadece 1 şarkı gösteriyordu.

Neden: Mobil Safari farklı çalışıyor. Şarkı bilgileri iki farklı yerde tutuluyordu ve birbirleriyle konuşmuyordu - sanki iki ayrı not defteri gibi.

Çözüm: Artık şarkı bilgileri tek bir yerde tutulup her iki sisteme de bildiriliyor. Böylece şarkı bitince sistem "sıradaki şarkı hangisi?" sorusuna cevap verebiliyor.

Teknik Detaylar (Geliştiriciler İçin)

1. Context Sync Sorunu (Ana Fix)

muzibuApp() component ile Alpine.store('player') farklı objeler. setPlayContext sadece component'i güncelliyordu, refillQueue ise store'a bakıyordu.

player-core.js:1774-1839
Artık hem component hem Alpine.store güncelleniyor

2. Queue Initialization Bug

refillQueue başarısız olduğunda queue hiç set edilmiyordu. Şimdi her durumda en az current song ile set ediliyor.

player-core.js:2202-2227

3. Context Fallback (API + Param)

album_id/genre_id hem API response'dan hem de song parametresinden alınıyor (fallback).

player-core.js:2140-2143

4. Safari Track End Fallback

Safari'de onended event güvenilmez. Şimdi şarkı bitimine 0.3 saniye kala otomatik geçiş tetikleniyor.

player-core.js:3278-3289

5. Safari SeekTo Desteği

seekTo() fonksiyonu sadece Howler.js ve HLS.js'i destekliyordu. Safari native HLS için 3. branch eklendi.

player-core.js:1619-1626

6. nextTrack Auto-Refill

Queue bittiğinde otomatik olarak yeni şarkılar çekiliyor. Context varsa API'den refill yapılıyor.

player-core.js:1015-1064

7. Mobil Seek Bar (3-dots Menu)

Mobil 3-dots menüsüne progress/seek bar eklendi. Touch events ile çalışıyor.

player.blade.php:136-176

Değişen Dosyalar

Debug Toast'ları (Root User)

🔍 store:OK album:X genre:Y ctx:var/yok - Şarkı başlarken context durumu
🎵 Queue: X şarkı geldi - refillQueue sonucu
🔄 Queue bitti, refill deneniyor... - nextTrack auto-refill
⚠️ Context yok, refill yapılamıyor - Context set edilmemiş

Test Adımları

  1. 1 Sayfayı hard refresh yap (pull down)
  2. 2 Root user olarak giriş yap
  3. 3 Bir şarkıya tıkla - Debug toast'larını gözle
  4. 4 Şarkı bitsin - Sonraki şarkıya otomatik geçmeli
  5. 5 3-dots menu > Seek bar'ı test et