QSound
1 import sys 2 from PyQt5.QtMultimedia import QSound 3 from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout 4 5 class Demo(QWidget): 6 def __init__(self): 7 super(Demo, self).__init__() 8 self.sound = QSound('D:\ss\ssss\弯弯的月亮.wav') #实例化一个QSound对象 9 self.sound.setLoops(QSound.Infinite) # 设置播放次数 10 #QSound.Infinite 参数让声音无限循环播放,传入相应的正整数会播放相应的次数 11 12 self.play_btn = QPushButton('播放', self) 13 self.stop_btn = QPushButton('停', self) 14 self.play_btn.clicked.connect(self.sound.play) #播放 15 self.stop_btn.clicked.connect(self.sound.stop) #停止 16 self.btn=QPushButton('测试', self) 17 self.btn.clicked.connect(self.cesi) 18 19 self.h_layout = QHBoxLayout() 20 self.h_layout.addWidget(self.play_btn) 21 self.h_layout.addWidget(self.stop_btn) 22 self.h_layout.addWidget(self.btn) 23 self.setLayout(self.h_layout) 24 25 def cesi(self): 26 print(self.sound.isFinished()) #声音播放结束没有。True播放结束 27 28 29 if __name__ == '__main__': 30 app = QApplication(sys.argv) 31 demo = Demo() 32 demo.show() 33 sys.exit(app.exec_())
QSoundEffect
可以用来播放无压缩的音频文件(典型的是wav文件),不过我们可以通过这个类以低延迟的方式来播放音频文件,而且可以对文件进行更精细化的操作,该类非常适合用来播放交互音效,如弹出框的提示音,游戏音效等