Radio Player Plus
VS Code içinde çalışan internet radyosu çalar. Kenar çubuğu paneli, durum çubuğu (alt bar) kontrolleri, favoriler ve istasyon yönetimi içerir. MP3, AAC, Icecast/Shoutcast ve HLS (.m3u8) yayınlarını destekler.
Kurulum
code --install-extension radio-player-plus-X.Y.Z.vsix
Kurulumdan sonra: Ctrl+Shift+P → Developer: Reload Window
Gereksinimler
| Gereksinim |
Zorunlu mu? |
Açıklama |
| VS Code 1.90+ |
Evet |
Eklenti motoru |
| FFmpeg (ffplay) |
Hayır |
Yalnızca bazı inatçı istasyonlar için (ör. Slow Türk / duhnet.tv). |
FFmpeg otomatik yüklenir mi? Eklenti ffplay'i kendisi indirmez; önce PATH'te, sonra WinGet paket klasöründe arar. Bulunamazsa ve bir istasyon ffplay'e ihtiyaç duyarsa bildirim çıkarır ve tek tıkla WinGet kurulumu önerir ("Yükle" düğmesi terminalde şu komutu çalıştırır):
winget install --id Gyan.FFmpeg -e
Kurulum bitince pencereyi yeniden yükleyin. Elle kurmak isterseniz aynı komut yeterli.
Kullanım
Kenar çubuğu
Etkinlik çubuğundaki Radio simgesine tıklayın. İstasyona tek tık = çal. Üstteki arama kutusu ve filtre çipleri (Tümü / ★ Favoriler / MP3 / AAC / HLS / Stream) listeyi daraltır.
Alt bar (durum çubuğu) kontrolleri
Sol altta, soldan sağa:
| Öğe |
İşlev |
| 📡 İstasyon adı |
Tıkla → kanal listesi (hızlı seçim) açılır. Çalarken yeşil yanar. |
‹ |
Önceki istasyon |
▶ / ⏸ |
Çal / Duraklat (yüklenirken dönen simge) |
› |
Sonraki istasyon |
■ |
Durdur |
− |
Sesi %10 azalt |
🔊 %80 |
Tıkla → sesi tamamen kapat/aç |
+ |
Sesi %10 artır |
İstasyon yönetimi
- Kanal ekle: Panelin üstündeki + düğmesi → ad ve URL sorar, ayarlara kaydeder.
- Sağ tık (istasyon satırında) → URL değiştir veya İstasyonu sil (Evet/Hayır onaylı).
- Favori: Satırdaki ⭐ simgesi. Favoriler listenin başına gelir ve kalıcıdır.
- Ses seviyesi ve son çalınan istasyon oturumlar arası hatırlanır.
Komut paleti
Ctrl+Shift+P → "Radio Player:" yazın — Play Station, Play/Pause, Next/Previous Station, Stop, Volume Up/Down, Mute, Reload Stations, Open Panel.
İstasyonlar settings.json içinde radioPlayer.customStations altında durur (+ düğmesi ve sağ tık menüsü bunları sizin yerinize yazar):
"radioPlayer.customStations": [
{
"name": "Slow Turk",
"url": "https://radyo.duhnet.tv/ak_dtvh_slowturk",
"fallbackUrls": ["https://radyo.duhnet.tv/slowturk"]
}
]
fallbackUrls isteğe bağlıdır; ana adres çalışmazsa sırayla denenir.
Nasıl çalışıyor? (mimari)
VS Code webview'ının ağ katmanı bazı radyo sunucularına hiç ulaşamıyor (istek loadstart'ta asılı kalıyor), düz http:// yayınlar karma içerik nedeniyle engelleniyor ve Shoutcast'in ICY 200 OK yanıtını Chromium reddediyor. Bu yüzden her istasyon URL'si bir deneme zincirine açılır; biri başarısız olursa otomatik sıradakine geçilir:
- ffplay (yalnızca duhnet.tv ve son çare) — yayını işletim sisteminde harici çalar; webview'ı tamamen baypas eder.
- MSE aktarımı — eklenti (Node) yayını çeker, AAC/MP3 karelerini doğrulayıp hizalar, baytları base64 ile webview'a gönderir; webview MediaSource tamponuna basar. Güvenilir ana yol.
- Loopback proxy — 127.0.0.1 üzerindeki yerel HTTP proxy; karma içerik, CORS ve ICY sorunlarını çözer. HLS listeleri de proxy'den yeniden yazılır.
- Doğrudan bağlantı — klasik
<audio src>; HLS için hls.js (pakete gömülü, CDN gerekmez).
Bir kaynak 8 saniye içinde ses üretmezse bekçi zamanlayıcı sıradaki kaynağa geçer. Her aşama günlüğe yazılır.
Sorun giderme
- Günlük:
Ctrl+Shift+U (Output paneli) → açılır listeden Radio Player kanalını seçin. Akış başlatma, bayt sayıları ve hatalar burada görünür.
- "Oynatmak için ▶ düğmesine tıklayın": VS Code'un otomatik çalma kısıtı — panel içindeki ▶ düğmesine bir kez tıklayın.
- "Desteklenmeyen formatlar: ..." açılışta görünüyorsa: VS Code'un codec eksiği var demektir; mesajı geliştiriciye iletin.
- İstasyon hiç çalmıyorsa: Sağ tık → URL değiştir ile güncel yayın adresini girin. Yayın adresleri zamanla ölür; radio-browser.info üzerinden güncel adres bulabilirsiniz.
- ffplay sesi durdurulamıyorsa: Alt bardaki ■ (Durdur) düğmesi ffplay sürecini kapatır. Pencere kapanınca da otomatik kapanır.
Geliştirme
npm run lint # sözdizimi kontrolü (extension.js + media/player.js)
node test-proxy.js # proxy'yi gerçek istasyonlarla duman testi
npm run package # vsix paketle
code --install-extension .\radio-player-plus-X.Y.Z.vsix --force
Hata ayıklama günlüğünü dosyaya da yazmak için eklentiyi RADIO_DEBUG_FILE=<dosya-yolu> ortam değişkeniyle başlatın. RADIO_TEST_URL=<yayın-url> değişkeni, geliştirme penceresinde paneli otomatik açıp verilen yayını test eder.