PyQt Phonon实现音乐播放器
来源:互联网 发布:sql截取字符串的函数 编辑:程序博客网 时间:2024/06/04 23:28
现在网上关于PyQt的文章不多,话说那个官方文档也是烂的一塌糊涂,初次使用Phonon模块遇到很多疑问,
国外网站相关的资料多些,看到一些好的例子记录下来,主要是注释了一下,给后来者一些提示。
# -*- coding: utf-8 -*-import sysfrom PyQt4 import QtCore, QtGuifrom PyQt4.phonon import Phononclass AudioPlayer(QtGui.QWidget): def __init__(self, url, parent = None): #url参数就是你的MP3地址 self.url = url QtGui.QWidget.__init__(self, parent) #设置一些窗口尺寸的策略,不用设置也会有默认策略,干脆注释了,无影响 # self.setSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Preferred)#创建一个音乐播放器 这是一种简单的方法,功能自然也是很单一,貌似只能实现简单的单首歌曲播放(希望我没有猜错,),更灵活的是使用AudioOutput,MediaObject等方法实现 self.player = Phonon.createPlayer(Phonon.MusicCategory,Phonon.MediaSource(url)) #下面这句话真没搞懂,谷歌了一下 多次尝试没反应 干脆把他注释了。。不影响程序 # self.player.setTickInterval(100) self.player.tick.connect(self.tock) #播放进度改变触发事件 self.play_pause = QtGui.QPushButton(self) #播放按钮 self.play_pause.setIcon(QtGui.QIcon('icons/49heart.svg')) #设置播放按钮图标,jpg,png都可以 self.play_pause.clicked.connect(self.playClicked) #播放按钮单击事件 self.player.stateChanged.connect(self.stateChanged) #播放状态改变触发事件 self.slider = Phonon.SeekSlider(self.player , self) #进度条 self.status = QtGui.QLabel(self) #Label组件用来显示播放的当前时间 self.status.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) #设置Label的对齐方式 左对齐或居中 layout = QtGui.QHBoxLayout(self) #水平布局 layout.addWidget(self.play_pause) #添加播放按钮 layout.addWidget(self.slider) #添加滑动条 layout.addWidget(self.status) #添加播放状态 def playClicked(self): if self.player.state() == Phonon.PlayingState: #如果为播放状态 self.player.pause() #暂停 else: self.player.play() #开始播放 def stateChanged(self, new, old): if new == Phonon.PlayingState: #根据改变后的状态更换播放图标 self.play_pause.setIcon(QtGui.QIcon('icons/49heart.svg')) else: self.play_pause.setIcon(QtGui.QIcon('icons/49heart.svg')) def tock(self, time): #播放进度改变时用来更新上面Label组件里面的当前播放时间time参数就是歌曲当前所在的时间刻,流中的媒体对象的当前位置是由时间参数给出 以毫秒为单位 time = time/1000 #除以1000得到秒单位 h = time/3600 #小时 m = (time-3600*h) / 60 #分钟 s = (time-3600*h-m*60) #秒 self.status.setText('%02d:%02d:%02d'%(h,m,s)) #更新Label显示的播放时间进度def main(): app = QtGui.QApplication(sys.argv) window=AudioPlayer(sys.argv[1]) #在命令行下的第二个参数 你的歌曲路径 window.show() #显示主窗口 sys.exit(app.exec_())if __name__ == "__main__": main()# 测试: python mp3player.py mymusic.mp3
这段代码实现了单首个点播,嵌入到程序中实现简单声音播放还是不错的,如果要做的更专业,更贴近现代化播放器该有的功能,
接下来几篇文章中我会介绍一些更灵活的复杂的功能
0 0
- PyQt Phonon实现音乐播放器
- Phonon 音乐播放器开发文档
- qt phonon 制作音乐播放器实现歌词和遮罩功能
- [PyQt] PyQt4写的音乐播放器
- qt运用phonon播放音乐出现问题
- phonon 视频 播放器
- qt phonon 制作音乐播放器学习(怎样让播放进度条和音乐播放时长同步)
- 使用Qt做一个简易音乐播放器[Phonon浅谈--续]
- 使用Qt做一个简易音乐播放器【Phonon浅谈--续】
- PyQt Phonon 模块初探
- Pyqt phonon的使用
- 一步一步实现音乐播放器
- C实现音乐播放器
- 简单音乐播放器实现
- 实现一个音乐播放器
- android实现音乐播放器
- ios实现音乐播放器后台播放
- Android音乐播放器---实现Notification控制音乐播放
- 手斧Linux – 从LFS到Funtoo (13)
- oracle 11g 基于备份的rman duplicate
- Android WakeLock的使用
- 手斧Linux – 从LFS到Funtoo (14)
- 奇幻之旅一
- PyQt Phonon实现音乐播放器
- hibernate hql 处理的都是实体bean
- 手斧Linux – 从LFS到Funtoo (15)
- JS获取和修改元素样式
- <Android>控件Spinner的基本使用
- BootstrapQ 封装Bootstrap tree,dialog等
- 手斧Linux – 从LFS到Funtoo (16)
- 2、fatal error: malformed or corrupted AST file: 'Unable to load module Darwin.pcm 问题解决
- java--枚举使用小例