PyQt Phonon 模块初探
来源:互联网 发布:mac下的思维导图 编辑:程序博客网 时间:2024/05/16 07:25
之前一直在windows上测试Phonon代码,刚刚回来用linux居然提示我没有Phonon模块
我使用的发行版是自带pyqt4的,但是不带Phonon模块,其实也说的通,Phonon本身也不是Qt的项目,详细请百度 sorry 是谷歌
我用的ubuntu系列,安装Phonon模块方法如下:
sudo apt-get install python-qt4-phonon
其他版本请使用yum install **** 或下载源代码自行编译安装
下面这个简单的例子,道出了Phonon基本使用之道,例子非常清晰易懂
#coding=utf-8from PyQt4 import QtGui, QtCorefrom PyQt4.phonon import Phononclass Window(QtGui.QPushButton): def __init__(self): QtGui.QPushButton.__init__(self, 'Choose File') #将一个按钮作为主窗口,谁说不可以。你试试 self.mediaObject = Phonon.MediaObject(self) #实例化一个媒体对象 self.audioOutput = Phonon.AudioOutput(Phonon.MusicCategory, self) #实例化音频输出 Phonon.createPath(self.mediaObject, self.audioOutput) #将上面的媒体对象作为音频来源并对接到音频输出 self.mediaObject.stateChanged.connect(self.handleStateChanged) #播放状态改变触发事件 self.clicked.connect(self.handleButton) #单击按钮事件 def handleButton(self): #按下按钮后检测当前的播放状态,如果为播放状态,那么停止 if self.mediaObject.state() == Phonon.PlayingState: self.mediaObject.stop() else: #如果状态本身就是停止的那么就打开文件对话框选择媒体 path = QtGui.QFileDialog.getOpenFileName(self, self.text()) #第二个参数是设置打开文件对话框默认在当前工作目录 if path: self.mediaObject.setCurrentSource(Phonon.MediaSource(path)) #把这个文件放到当前的播放队列的第一个位置(这个位置不是我们看到的列表里面的位置,而是播放位置) self.mediaObject.play() #开始播放 def handleStateChanged(self, newstate, oldstate): #当播放状态该表时触发这个函数 if newstate == Phonon.PlayingState: #检查播放状态 self.setText('Stop') elif newstate == Phonon.StoppedState: self.setText('Choose File') elif newstate == Phonon.ErrorState: #判断播放异常,这个很实用 source = self.mediaObject.currentSource().fileName() #抛出播放出错的文件名 print 'ERROR: could not play:', source.toLocal8Bit().data()if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) app.setApplicationName('Phonon') win = Window() win.resize(200, 100) win.show() sys.exit(app.exec_())请对比我上一篇的例子,细细品味一下两者使用完全不同的两个类,而这种方式才是核心,上一篇的例子算是抛簪引玉,
这篇例子说明了phonon的基本使用之道,更深刻的例子在接下来的文章中咱们继续分析
0 0
- PyQt Phonon 模块初探
- Pyqt phonon的使用
- pyQT初探
- pyqt初探
- PyQt Phonon实现音乐播放器
- qt-embedded编译phonon模块
- Phonon
- Phonon
- phonon
- ubuntu12.04 错误:phonon: No such file or directory; phonon模块的安装
- pyqt 中生成二维码的代码模块
- PyQt的组成模块及功能
- PyQt
- PyQt
- PyQt
- PYQT
- Qt与脚本初探:QtScript, PyQt, PythonQt, Qt Jambi
- Nginx模块编写初探
- java.lang.OutOfMemoryError: Java heap space
- WordPress主题制作全过程(十):制作comments.php
- poj 2418 Hardwood Species(二叉排序树)
- jQuery 属性操作 - attr() 方法
- java乱码问题解决
- PyQt Phonon 模块初探
- Software CRC - UVa 128 取模
- Android数据存储方式:SharePreference、SQLite、ContentProvider有什么不同?
- HDU2539(模拟)
- 周鸿祎:致那些在公司混日子的人
- 创建线程及其实现
- 【剑指Offer面试编程题】题目1512:用两个栈实现队列--九度OJ
- [Java错误]使用Collections中的copy方法复制ArrayList产生的错误
- 选择排序算法