使用win32库的WMPlayer.OCX开发一个简易的音乐播放器
1 import sys
2 from PyQt4 import QtGui, QtCore
3 from win32com.client import Dispatch
4
5 class MyWindow(QtGui.QWidget):
6 def __init__(self):
7 super(MyWindow, self).__init__()
8 self.setWindowTitle('音乐播放器')
9 self.resize(485, 300)
10
11 self.btnAdd = QtGui.QPushButton('Add')
12 self.btnPlay = QtGui.QPushButton('Play')
13 self.btnPause = QtGui.QPushButton('Pause')
14 self.btnStop = QtGui.QPushButton('Stop')
15 self.btnNext = QtGui.QPushButton('Next')
16 self.txtList = QtGui.QTextEdit()
17
18 grid = QtGui.QGridLayout()
19 grid.addWidget(self.btnAdd, 0, 0)
20 grid.addWidget(self.btnPlay, 0, 1)
21 grid.addWidget(self.btnPause, 0, 2)
22 grid.addWidget(self.btnStop, 0, 3)
23 grid.addWidget(self.btnNext, 0, 4)
24 grid.addWidget(self.txtList, 1, 0, 1, 5)
25 self.setLayout(grid)
26
27 self.connect(self.btnAdd, QtCore.SIGNAL('clicked()'), self.onBtnAdd)
28 self.connect(self.btnPlay, QtCore.SIGNAL('clicked()'), self.onBtnPlay)
29 self.connect(self.btnPause, QtCore.SIGNAL('clicked()'), self.onBtnPause)
30 self.connect(self.btnStop, QtCore.SIGNAL('clicked()'), self.onBtnStop)
31 self.connect(self.btnNext, QtCore.SIGNAL('clicked()'), self.onBtnNext)
32
33 self.wmp = Dispatch('WMPlayer.OCX')
34
35 def onBtnAdd(self):
36 file = QtGui.QFileDialog.getOpenFileName(self, '打开文件', filter='音乐文件(*.mp3; *.wma; *.wav)')
37 if file:
38 media = self.wmp.newMedia(file)
39 self.wmp.currentPlayList.appendItem(media)
40 self.txtList.append(file+'\n')
41 def onBtnPlay(self):
42 self.wmp.controls.play()
43 def onBtnPause(self):
44 self.wmp.controls.pause()
45 def onBtnStop(self):
46 self.wmp.controls.stop()
47 def onBtnNext(self):
48 self.wmp.controls.next()
49 app = QtGui.QApplication(sys.argv)
50 mywindow = MyWindow()
51 mywindow.show()
52 app.exec_()