Basit Anlatim (Herkes Icin)
Mobil muzik calar deneyimini iyilestirdik. Gereksiz butonlari kaldirdik, sure gosterimini daha kullanisli hale getirdik ve konsol hatalarini temizledik. Ayrica kilit ekranindaki play/pause butonlarinin calismama sorunu duzeltildi.
v2 Yeni Duzeltmeler
MediaSession Handler Bug Duzeltildi
Kilit ekrani kontrolleri
Lock screen ve Control Center'daki play/pause butonlari yanlis fonksiyon
cagiriyordu (togglePlay()).
Dogru fonksiyon (togglePlayPause())
ile duzeltildi.
// Onceki (hatali):
navigator.mediaSession.setActionHandler('play', () => self.togglePlay());
// Simdi (duzeltildi):
navigator.mediaSession.setActionHandler('play', () => self.togglePlayPause());
Sekmeler Arasi Izolasyon Dogrulandi
Her sekme bagimsiz
Kod analizi sonucu dogrulandi: Sekmeler arasi iletisim mekanizmasi
(BroadcastChannel,
storage event)
bulunmuyor. Her sekme tamamen bagimsiz calisiyor.
Auto-Play Guard'lari Dogrulandi
Kullanici izni olmadan calma yok
init() fonksiyonu
clearPlayerState() cagiriyor,
preloadLastPlayedSong()
sonunda isPlaying = false
set ediyor. Sayfa acildiginda asla otomatik calma yok.
v1 Yapilan Degisiklikler
Mute Butonu Kaldirildi
Mobil dropdown'dan
Mobilde ses kontrolu zaten cihaz butonlariyla yapiliyor. Ekstra mute butonu gereksiz yer kapliyordu.
Kalan Sure Gosterimi
Album kapagi uzerinde
Onceden gecen sureyi gosteriyordu. Simdi kalan sureyi gosteriyor.
Progress Bar Simetrisi
Sol/sag bosluklar esitlendi
Drag Feedback Kaldirildi
Progress bar altindan
"Albume Git" Butonu Kaldirildi
Dropdown menuden
Duzeltilen Console Hatalari
Onceki Hata:
No context to update - muzibu-store.js:251
Cozum: console.warn kaldirildi, sessiz guard eklendi
Onceki Hata:
seekTo called with invalid argument: null - player-core.js:1786
Cozum: null/undefined kontrolu eklendi
Onceki Hata:
Safari preload error: 464 - player-core.js:5006
Cozum: console.warn kaldirildi (Safari bilinen davranis)
✓ Simdi Safari konsolunda hata mesaji gorulmemeli
isPlaying Guard Sistemi
Kullanici pause/stop yaptiginda player'in kendiliğinden devam etmesini onleyen guard'lar:
// onTrackEnded() - Sarki bittiginde (line 1835-1841)
if (!this.isPlaying) {
serverLog('onTrackEndedBlocked', { reason: 'isPlaying is false' });
return; // Sonraki sarkiya gecme!
}
// startCrossfade() - Crossfade baslatma (line 1348-1350)
if (!this.isPlaying) return; // Crossfade baslatma!
// clearPlayerState() - Sayfa yenilenince (line 5356)
this.isPlaying = false; // Her zaman false ile basla
// preloadLastPlayedSong() - Son sarkiyi yukle (line 561)
this.isPlaying = false; // Preload, auto-play degil!
Crossfade Hakkinda Not
Crossfade ozelligi mobil Safari'de sorunlu calistigi icin devre disi birakildi. Desktop'ta normal calismaya devam ediyor.