Selam, uzun aradan sonra basit bir proje ile geldim.
Python ile UI destekli bir mp3 çalar yazacağız.
Koda geçelim:
Kütüphanelerimiz;
Mp3 çalar sınıfını açıp başlıyoruz;
Butonları Ayarlayalım;
Şarkı Ekleme Kısmı;
Oynatma Durdurma Kısmı;
Programı başlatalım;
Basit bir kod parçası, geliştirmek isteyen kullanabilir.
Hayırlı geceler.
Python ile UI destekli bir mp3 çalar yazacağız.
Koda geçelim:
Kütüphanelerimiz;
Python:
import sys
import os
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QPushButton, QVBoxLayout, QFileDialog
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
from PyQt5.QtCore import QUrl
Mp3 çalar sınıfını açıp başlıyoruz;
Python:
class mp3calar(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("MP3 Çalar")
self.setGeometry(300, 300, 400, 500)
#ui için setGeometry belirledik
self.oynatici = QMediaPlayer()
self.calar_listesi = [] #liste boş
self.su_an_ki = -1
self.duraklatildi = False
self.arayuz_olustur()
Butonları Ayarlayalım;
Python:
def arayuz_olustur(self):
ana_duzen = QVBoxLayout()
#şarkı listesi
self.liste = QListWidget()
self.liste.itemDoubleClicked.connect(self.cift_tikla_oynat)
ana_duzen.addWidget(self.liste)
#butonları ayarlayalım
buton_duzen = QVBoxLayout()
self.oynat_btn = QPushButton("Oynat")
self.oynat_btn.clicked.connect(self.oynat_devam)
buton_duzen.addWidget(self.oynat_btn)
self.dur_btn = QPushButton("Dur")
self.dur_btn.clicked.connect(self.durdur)
buton_duzen.addWidget(self.dur_btn)
self.ekle_btn = QPushButton("Şarkı Ekle")
self.ekle_btn.clicked.connect(self.sarki_ekle)
buton_duzen.addWidget(self.ekle_btn)
#buton düzeni bu kadar
#ekstra buton eklemek isterseniz aynı bu şekilde yapın
#devamında fonksiyonu yazacksınız
ana_duzen.addLayout(buton_duzen)
self.setLayout(ana_duzen)
Şarkı Ekleme Kısmı;
Python:
def sarki_ekle(self):
#fonksiyonu açtık
#filedialog ile istenilen şarkı seçilecek
dosya_yolu, _ = QFileDialog.getOpenFileName(self, "MP3 Seç", "", "MP3 Dosyaları (*.mp3)")
if dosya_yolu and dosya_yolu not in self.calar_listesi:
self.calar_listesi.append(dosya_yolu)
dosya_adi = os.path.basename(dosya_yolu)
self.liste.addItem(dosya_adi)
Oynatma Durdurma Kısmı;
Python:
def oynat_devam(self):
#eğer şarkı seçilmezse
secim = self.liste.currentRow()
if secim >= 0:
self.su_an_ki = secim
elif self.su_an_ki == -1 and self.calar_listesi:
self.su_an_ki = 0
#0 olaarak belirledik
if self.su_an_ki >= 0:
sarki = self.calar_listesi[self.su_an_ki]
if self.duraklatildi:
#devam
self.oynatici.play()
self.duraklatildi = False
self.oynat_btn.setText("Oynat")
elif self.oynatici.state() == QMediaPlayer.StoppedState or self.oynatici.state() == QMediaPlayer.PausedState:
#durdurma
self.oynatici.setMedia(QMediaContent(QUrl.fromLocalFile(sarki)))
self.oynatici.play()
self.oynat_btn.setText("Duraklat")
else:
#devam
self.oynatici.pause()
self.duraklatildi = True
self.oynat_btn.setText("Devam Et")
self.liste.setCurrentRow(self.su_an_ki)
Programı başlatalım;
Python:
def durdur(self):
self.oynatici.stop()
self.su_an_ki = -1
self.duraklatildi = False
self.oynat_btn.setText("Oynat")
self.liste.setCurrentRow(-1)
def cift_tikla_oynat(self, item):
self.oynat_devam()
if __name__ == "__main__":
app = QApplication(sys.argv)
calar = Mp3Calar()
calar.show()
sys.exit(app.exec_())
Basit bir kod parçası, geliştirmek isteyen kullanabilir.
Hayırlı geceler.
