V2 UPDATE MOBİL SAFARI

Mobil iOS Player Fix'leri v2

28 Aralık 2025 03:58 - muzibu.com

Ana Sorun ve Çözüm

SORUN: Queue'daki Şarkı Verileri Eksik

Basit Anlatım: Şarkı bilgileri iki farklı şekilde saklanıyordu. Queue'ya (sıra) eklenen şarkı bilgisi eksikti, sadece başlık ve süre vardı. Albüm ve tür bilgisi yoktu.

Teknik Detay:

  • Line 2207-2212: song objesi sadece song_id, title, duration içeriyordu
  • Line 2221: this.queue = [song] - Eksik veri ile queue'ya eklendi
  • Line 2224: this.currentSong ise streamData.song ile merge ediliyordu (album_id vardı)
  • Ama queue'daki şarkıda album_id/genre_id yoktu!

ÇÖZÜM: Queue'ya Tam Veri Ekle

Basit Anlatım: Artık şarkı queue'ya eklenmeden önce tüm bilgiler birleştiriliyor. Albüm ve tür bilgisi de dahil ediliyor.

Teknik Detay:

// ESKİ (HATALI):
const song = { song_id, title, duration }; // album_id YOK!
this.queue = [song];
this.currentSong = { ...song, ...streamData.song }; // Sadece burası doğru

// YENİ (DOĞRU):
const song = { song_id, title, duration };
const fullSong = { ...song, ...streamData.song }; // album_id VAR!
this.queue = [fullSong]; // Queue'ya TAM veri
this.currentSong = fullSong;

Server-Side Debug Logging

Basit Anlatım: Artık mobil cihazlardan gelen debug bilgileri sunucu loglarına kaydediliyor. Screenshot almaya gerek yok!

Eklenen Dosyalar/Fonksiyonlar:

  • Modules/Muzibu/routes/api.php

    POST /api/muzibu/debug-log endpoint eklendi

  • player-core.js:16-28

    serverLog() fonksiyonu - Server'a log gönderir

  • player-core.js:31-33

    DOMContentLoaded → scriptLoaded log (versiyon kontrolü)

Log Noktaları:

  • scriptLoaded - Script yüklendiğinde (versiyon + user agent)
  • playSong - Şarkı başladığında (album_id, genre_id, context)
  • onTrackEnded - Şarkı bittiğinde (repeatMode, queue durumu)
  • nextTrack - Sonraki şarkıya geçerken (queue index, context)
  • autoCreateContext - Context otomatik oluşturulurken

Log Konumu:

storage/logs/laravel.log

Grep komutu: grep "PLAYER DEBUG" storage/logs/laravel.log

Safari Cache Busting

Basit Anlatım: Safari çok agresif cache yapıyordu, eski JavaScript dosyasını kullanıyordu. Artık her güncelleme yeni versiyon numarası alıyor.

Değişiklik:

// ESKİ:
<script src="{{ asset('themes/muzibu/js/player/core/player-core.js') }}">

// YENİ:
<script src="{{ versioned_asset('themes/muzibu/js/player/core/player-core.js') }}">
// Sonuç: player-core.js?v=1766883493

versioned_asset() helper dosyanın modification time'ını query string olarak ekler.

Değişen Dosyalar

Test Adımları

  1. 1 Safari'yi tamamen kapatıp yeniden açın (hard refresh)
  2. 2 muzibu.com adresine gidin
  3. 3 Root user olarak giriş yapın
  4. 4 Bir şarkıya tıklayın - Debug toast'larını gözlemleyin
  5. 5 Şarkı bitene kadar bekleyin
  6. 6 BEKLENEN: Sonraki şarkıya otomatik geçiş