在使用pyqt videopalyer不能播放MP4的解决方法
2014-09-05 10:51
1056 查看
在使用pyqt的videoplayer开发视频播放器的时候,发现不能播放MP4,结果发现没有解码器,在电脑上安装MP4解码器就可以了。K-Lite Codec Pack支持大多数格式的视频解码
下面是我写的视频播放器,比较简单
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui, Qt
class Player(QtGui.QMainWindow):
style = 'background:url(images/{0}.png) no-repeat center;border:none;'
currentMovie = None
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setWindowTitle("ADAM Player") #设置窗体的标题
self.resize(800, 500) #设置窗体大小
self.setWindowIcon(QtGui.QIcon('gita.ico')) #设置icon
self.setStyleSheet('background:white')
# self.setWindowFlags(Qt.Qt.FramelessWindowHint)
self.setMask(QtGui.QPixmap('images/bg.png').mask())
self.setMouseTracking(True)
menu = self.menuBar()
menu.setStyleSheet('background:#000;')
self.menu = menu.addMenu(u'&文件')
open = self.menu.addAction(u'打开')
self.connect(open, QtCore.SIGNAL('triggered()'), self.openMovie)
self.menu.setStyleSheet('background:none;')
#播放器对象
self.videoPlayer = phonon.Phonon.VideoPlayer(self)
self.videoPlayer.resize(QtCore.QSize(800, 450))
#播放按钮
self.playBtn = QtGui.QPushButton(self)
self.playBtn.setObjectName('playBtn')
self.playBtn.setStyleSheet(self.style.format('play'))
self.playBtn.setMask(QtGui.QPixmap('images/play.png').mask())
self.playBtn.resize(48, 48)
self.connect(self.playBtn, QtCore.SIGNAL('clicked()'), self.play) #绑定点击事件
#重新播放按钮
self.resetBtn = QtGui.QPushButton(self)
self.resetBtn.setObjectName('resetBtn')
self.resetBtn.setStyleSheet(self.style.format('reset'))
self.resetBtn.setMask(QtGui.QPixmap('images/reset.png').mask())
self.resetBtn.resize(48, 48)
self.connect(self.resetBtn, QtCore.SIGNAL('clicked()'), self.restart) #绑定点击事件
self.videoPlayer.move(0, 20)
self.videoPlayer.show()
self.playBtn.move(20, 415)
self.resetBtn.move(80, 415)
def play(self):
if not self.currentMovie:
QtGui.QMessageBox.warning(self, u'提示', u'请选择影片')
return False
if self.videoPlayer.isPlaying():
self.videoPlayer.pause()
self.position = self.videoPlayer.currentTime()
self.playBtn.setStyleSheet(self.style.format('play'))
else:
if self.videoPlayer.isPaused():
self.videoPlayer.play()
self.playBtn.setStyleSheet(self.style.format('pause'))
else:
# mediaSource = phonon.Phonon.MediaSource("./source/122195353176400128.mp3")
# mediaSource = phonon.Phonon.MediaSource(u"./source/爱她的枪(预告片).mpeg")
mediaSource = phonon.Phonon.MediaSource(self.currentMovie)
self.videoPlayer.load(mediaSource)
self.videoPlayer.play()
self.playBtn.setStyleSheet(self.style.format('pause'))
self.setWindowTitle(self.currentMovie)
def restart(self):
self.videoPlayer.seek(0)
def openMovie(self):
self.currentMovie = unicode(QtGui.QFileDialog.getOpenFileName(self))
if self.currentMovie:
self.videoPlayer.load(phonon.Phonon.MediaSource(self.currentMovie))
self.play()
from PyQt4 import phonon
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
palyer = Player()
palyer.show()
sys.exit(app.exec_())
下面是我写的视频播放器,比较简单
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui, Qt
class Player(QtGui.QMainWindow):
style = 'background:url(images/{0}.png) no-repeat center;border:none;'
currentMovie = None
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setWindowTitle("ADAM Player") #设置窗体的标题
self.resize(800, 500) #设置窗体大小
self.setWindowIcon(QtGui.QIcon('gita.ico')) #设置icon
self.setStyleSheet('background:white')
# self.setWindowFlags(Qt.Qt.FramelessWindowHint)
self.setMask(QtGui.QPixmap('images/bg.png').mask())
self.setMouseTracking(True)
menu = self.menuBar()
menu.setStyleSheet('background:#000;')
self.menu = menu.addMenu(u'&文件')
open = self.menu.addAction(u'打开')
self.connect(open, QtCore.SIGNAL('triggered()'), self.openMovie)
self.menu.setStyleSheet('background:none;')
#播放器对象
self.videoPlayer = phonon.Phonon.VideoPlayer(self)
self.videoPlayer.resize(QtCore.QSize(800, 450))
#播放按钮
self.playBtn = QtGui.QPushButton(self)
self.playBtn.setObjectName('playBtn')
self.playBtn.setStyleSheet(self.style.format('play'))
self.playBtn.setMask(QtGui.QPixmap('images/play.png').mask())
self.playBtn.resize(48, 48)
self.connect(self.playBtn, QtCore.SIGNAL('clicked()'), self.play) #绑定点击事件
#重新播放按钮
self.resetBtn = QtGui.QPushButton(self)
self.resetBtn.setObjectName('resetBtn')
self.resetBtn.setStyleSheet(self.style.format('reset'))
self.resetBtn.setMask(QtGui.QPixmap('images/reset.png').mask())
self.resetBtn.resize(48, 48)
self.connect(self.resetBtn, QtCore.SIGNAL('clicked()'), self.restart) #绑定点击事件
self.videoPlayer.move(0, 20)
self.videoPlayer.show()
self.playBtn.move(20, 415)
self.resetBtn.move(80, 415)
def play(self):
if not self.currentMovie:
QtGui.QMessageBox.warning(self, u'提示', u'请选择影片')
return False
if self.videoPlayer.isPlaying():
self.videoPlayer.pause()
self.position = self.videoPlayer.currentTime()
self.playBtn.setStyleSheet(self.style.format('play'))
else:
if self.videoPlayer.isPaused():
self.videoPlayer.play()
self.playBtn.setStyleSheet(self.style.format('pause'))
else:
# mediaSource = phonon.Phonon.MediaSource("./source/122195353176400128.mp3")
# mediaSource = phonon.Phonon.MediaSource(u"./source/爱她的枪(预告片).mpeg")
mediaSource = phonon.Phonon.MediaSource(self.currentMovie)
self.videoPlayer.load(mediaSource)
self.videoPlayer.play()
self.playBtn.setStyleSheet(self.style.format('pause'))
self.setWindowTitle(self.currentMovie)
def restart(self):
self.videoPlayer.seek(0)
def openMovie(self):
self.currentMovie = unicode(QtGui.QFileDialog.getOpenFileName(self))
if self.currentMovie:
self.videoPlayer.load(phonon.Phonon.MediaSource(self.currentMovie))
self.play()
from PyQt4 import phonon
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
palyer = Player()
palyer.show()
sys.exit(app.exec_())
相关文章推荐
- 使用格式工厂转换的MP4视频不能在网页上播放的解决办法
- Android使用react-native-video 播放视频一直重复播放的解决方法
- django下video播放时间不能超过5s并且视频有时无法显示问题的解决方法
- node-webkit 不支持html5_video播放mp4的解决方法
- win7系统使用media player播放MP4视频只有声音没有图像的原因及解决方法
- Android使用VideoView出现无法播放此视频问题的解决方法
- html5网页中用video标签无法播放MP4视频的解决方法
- 不能使用asp标记时的解决方法
- Windows 2003不能使用include file功能的解决方法
- 解决部分1.1.1版用户不能使用iBus的方法
- Lenovo F41 使用WinXP不能全屏看Flash格式的电影的解决方法
- Firefox中动态创建元素后不能马上使用的解决方法 Ajax__
- 解决IE在客户端使用ADODB.Stream不能创建对象成功的方法
- 解决1.1.1固件不能使用iBus的通用方法
- Lenovo F41 使用WinXP不能全屏看Flash格式的电影的解决方法
- 解决DotNetNuke3.0.8菜单不能使用中文的方法
- 使用JSTL出现表达式不能解析的解决方法
- VS2005编写aspx,设计 不能使用的解决方法
- Tomcat 5.5不能使用EL表达式¥{}的解决方法
- XMMS乱码和不能播放MP3、wma的解决方法