from PyQt5.QtGui import *
from PyQt5.QtMultimedia import *
import sys
class Pencere(QWidget):
şarkı_listesi = ["uslanmıyor-Zeynep Bastık", "Kurdish Mahsup", "MotorHead"]
def __init__(self):
super().__init__()
self.setGeometry(300,100,600,600)
self.setWindowTitle("Müzik Çalar")
self.list = QListWidget(self)
#self.list.addItem("uslanmıyor-Zeynep Bastık")
#self.list.addItem("Kurdish Mahsup")
#self.list.addItem("MotorHead")
self.list.addItems(self.şarkı_listesi)
self.list.setSelectionMode(QAbstractItemView.SingleSelection)
self.sesLabel = QLabel(self)
self.sesLabel.setText("SES : 0")
self.sesLabel.setFont(QFont("Helvetica",18))
self.slider = QSlider(Qt.Vertical,self)
self.slider.setTickPosition((QSlider.TicksRight))
self.slider.setMinimum(1)
self.slider.setMaximum(100)
self.slider.setSingleStep(2)
sesliButonu = QPushButton(self)
sesliButonu.setText("SESSİZDEN ÇIKAR")
sessizButonu = QPushButton(self)
sessizButonu.setText("SESSİZE AL")
durdurButonu = QPushButton(self)
durdurButonu.setText("DURDUR")
durdurButonu.setFont(QFont("Helvetica",20,QFont.Bold))
durdurButonu.setShortcut("SPACE") # space tuşuyla müzik duruyor.
başlatButonu = QPushButton(self)
başlatButonu.setText("BAŞLAT")
başlatButonu.setFont(QFont("Helvetica",20,QFont.Bold))
bitirButonu = QPushButton(self)
bitirButonu.setText("BİTİR")
bitirButonu.setShortcut("esc")
bitirButonu.setFont(QFont("Helvetica",20,QFont.Bold))
şarkıEkleButonu = QPushButton(self)
şarkıEkleButonu.setText("Şarkı Ekle")
v_box = QVBoxLayout(self)
h1_box = QHBoxLayout(self)
h2_box = QHBoxLayout(self)
h3_box = QHBoxLayout(self)
h1_box.addWidget(self.slider)
h1_box.addWidget(self.list)
h2_box.addWidget(self.sesLabel)
h2_box.addWidget(sesliButonu)
h2_box.addWidget(sessizButonu)
h2_box.addWidget(durdurButonu)
h2_box.addWidget(başlatButonu)
h3_box.addWidget(şarkıEkleButonu)
h3_box.addWidget(bitirButonu)
v_box.addLayout(h1_box)
v_box.addLayout(h2_box)
v_box.addLayout(h3_box)
başlatButonu.clicked.connect(self.baslat)
durdurButonu.clicked.connect(self.durdur)
self.slider.valueChanged.connect(self.sesDegistir)
sessizButonu.clicked.connect(self.sessizeAl)
sesliButonu.clicked.connect(self.sessizdenCikar)
bitirButonu.clicked.connect(self.close)
şarkıEkleButonu.clicked.connect(self.sarkiEkle)
def baslat(self):
self.şarkı = self.list.currentItem().text()
self.şarkı = self.şarkı + ".mp3"
self.media_oluştur()
self.media.play()
def durdur(self):
self.media.stop()
x = self.media.duration() # süreyi verir!
def media_oluştur(self):
self.media = QMediaPlayer(self)
self.media.setMedia(QMediaContent(QUrl.fromLocalFile("C:/Users/Asus/Desktop/Müzikler/{}".format(self.şarkı))))
self.media.setVolume(20)
def sesDegistir(self):
self.sesYaz()
self.media.setVolume(int(self.slider.value()))
def sesYaz(self):
self.sesLabel.setText("SES : {}".format(self.slider.value()))
def sessizeAl(self):
self.media.setMuted(1)
def sessizdenCikar(self):
self.media.setMuted(0)
def sarkiEkle(self):
pass
app = QApplication(sys.argv)
window = Pencere()
window.show()
app.exec_()```
-
İlk sorum şu: Bir şarkıyı başlat butonu ile başlattıktan sonra tekrar başlat butonuna basınca önceden çalınan şarkı kapanmadan ikinci şarkı olarak baştan başlıyor.Bunu nasıl kontrol edebilirim?
-
İkinci sorum:
def sarkiEkle(Self)
fonksiyonu ile nasıl şarkı ekleyebilirim? -
Üçüncü sorum: Bir şarkının süresini göstermek ve şarkıyı ileri geri sarmak istiyorum. Bunu nasıl yapabilirim?
Yardımlarınızı bekliyorum.Şimdiden teşekkürler…
import
larınız eksik sanırım, bir sürü hata alıyorum.
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtMultimedia import *
import sys
class Pencere(QWidget):
şarkı_listesi = ["uslanmıyor-Zeynep Bastık", "Kurdish Mahsup", "MotorHead"]
def __init__(self):
super().__init__()
self.setGeometry(300,100,600,600)
self.setWindowTitle("Müzik Çalar")
self.list = QListWidget(self)
#self.list.addItem("uslanmıyor-Zeynep Bastık")
#self.list.addItem("Kurdish Mahsup")
#self.list.addItem("MotorHead")
self.list.addItems(self.şarkı_listesi)
self.list.setSelectionMode(QAbstractItemView.SingleSelection)
self.sesLabel = QLabel(self)
self.sesLabel.setText("SES : 0")
self.sesLabel.setFont(QFont("Helvetica",18))
self.slider = QSlider(Qt.Vertical,self)
self.slider.setTickPosition((QSlider.TicksRight))
self.slider.setMinimum(1)
self.slider.setMaximum(100)
self.slider.setSingleStep(2)
sesliButonu = QPushButton(self)
sesliButonu.setText("SESSİZDEN ÇIKAR")
sessizButonu = QPushButton(self)
sessizButonu.setText("SESSİZE AL")
durdurButonu = QPushButton(self)
durdurButonu.setText("DURDUR")
durdurButonu.setFont(QFont("Helvetica",20,QFont.Bold))
durdurButonu.setShortcut("SPACE") # space tuşuyla müzik duruyor.
başlatButonu = QPushButton(self)
başlatButonu.setText("BAŞLAT")
başlatButonu.setFont(QFont("Helvetica",20,QFont.Bold))
bitirButonu = QPushButton(self)
bitirButonu.setText("BİTİR")
bitirButonu.setShortcut("esc")
bitirButonu.setFont(QFont("Helvetica",20,QFont.Bold))
şarkıEkleButonu = QPushButton(self)
şarkıEkleButonu.setText("Şarkı Ekle")
v_box = QVBoxLayout(self)
h1_box = QHBoxLayout(self)
h2_box = QHBoxLayout(self)
h3_box = QHBoxLayout(self)
h1_box.addWidget(self.slider)
h1_box.addWidget(self.list)
h2_box.addWidget(self.sesLabel)
h2_box.addWidget(sesliButonu)
h2_box.addWidget(sessizButonu)
h2_box.addWidget(durdurButonu)
h2_box.addWidget(başlatButonu)
h3_box.addWidget(şarkıEkleButonu)
h3_box.addWidget(bitirButonu)
v_box.addLayout(h1_box)
v_box.addLayout(h2_box)
v_box.addLayout(h3_box)
başlatButonu.clicked.connect(self.baslat)
durdurButonu.clicked.connect(self.durdur)
self.slider.valueChanged.connect(self.sesDegistir)
sessizButonu.clicked.connect(self.sessizeAl)
sesliButonu.clicked.connect(self.sessizdenCikar)
bitirButonu.clicked.connect(self.close)
şarkıEkleButonu.clicked.connect(self.sarkiEkle)
def baslat(self):
self.şarkı = self.list.currentItem().text()
self.şarkı = self.şarkı + ".mp3"
self.media_oluştur()
self.media.play()
def durdur(self):
self.media.stop()
x = self.media.duration() # süreyi verir!
def media_oluştur(self):
self.media = QMediaPlayer(self)
self.media.setMedia(QMediaContent(QUrl.fromLocalFile("C:/Users/Asus/Desktop/Müzikler/{}".format(self.şarkı))))
self.media.setVolume(20)
def sesDegistir(self):
self.sesYaz()
self.media.setVolume(int(self.slider.value()))
def sesYaz(self):
self.sesLabel.setText("SES : {}".format(self.slider.value()))
def sessizeAl(self):
self.media.setMuted(1)
def sessizdenCikar(self):
self.media.setMuted(0)
def sarkiEkle(self):
pass
app = QApplication(sys.argv)
window = Pencere()
window.show()
app.exec_()
Aynen eksik atmışım. Şimdi attığım doğrusu…
stop
metodu ile şarkıyı durdurabilirsiniz:
def baslat(self):
try:
self.media.stop()
except AttributeError:
pass
self.şarkı = self.list.currentItem().text()
self.şarkı = self.şarkı + ".mp3"
self.media_oluştur()
self.media.play()
Şarkı eklemeden kastınız bilgisayarda bulunan bir şarkıyı seçmek mi?
Emin değilim ama position
ile yapılıyor sanırım.
https://doc.qt.io/qtforpython/PySide2/QtMultimedia/QMediaPlayer.html#functions
Evet bilgisayardaki şarkıyı
Sorunuz cevapsız kalmış şimdi fark ettim. Şuradaki anlatımı takip edebilirsiniz:
https://www.tutorialspoint.com/pyqt/pyqt_qfiledialog_widget.htm