내가 게시 한 코드에 분명히 잘못된 것이 보이지 않습니다. 시스템에서 필요한 코덱을 사용할 수 있다면 phonon이 퀵타임 파일을 재생할 수 없어야하는 이유는 없습니다.
다음은 나를 위해 퀵타임 파일을 재생하는 간단한 포논 데모입니다 (Linux에서는 GStreamer 백엔드 사용). 이 데모에는 현재 포논 백엔드가 처리 할 수있는 사용 가능한 모든 MIME 유형이 나열되어 있습니다. 내 시스템에서 마임 유형 "video/quicktime"이 목록에 표시됩니다.
콘솔에서 실행하면 모든 포논 오류 메시지가 인쇄됩니다.
편집
이 창에, 포논 백엔드로 Windows Media Player를 사용할 수 있음을 나타납니다. 그렇다면 QuickTime 파일을 재생할 수 있도록 WMP 용 일부 추가 코덱을 설치해야 할 수 있습니다.
from PyQt4 import QtGui, QtCore
from PyQt4.phonon import Phonon
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.media = Phonon.MediaObject(self)
self.media.stateChanged.connect(self.handleStateChanged)
self.video = Phonon.VideoWidget(self)
self.video.setMinimumSize(400, 400)
self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self)
Phonon.createPath(self.media, self.audio)
Phonon.createPath(self.media, self.video)
self.button = QtGui.QPushButton('Choose File', self)
self.button.clicked.connect(self.handleButton)
self.list = QtGui.QListWidget(self)
self.list.addItems(Phonon.BackendCapabilities.availableMimeTypes())
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.video, 1)
layout.addWidget(self.button)
layout.addWidget(self.list)
def handleButton(self):
if self.media.state() == Phonon.PlayingState:
self.media.stop()
else:
path = QtGui.QFileDialog.getOpenFileName(self, self.button.text())
if path:
self.media.setCurrentSource(Phonon.MediaSource(path))
self.media.play()
def handleStateChanged(self, newstate, oldstate):
if newstate == Phonon.PlayingState:
self.button.setText('Stop')
elif (newstate != Phonon.LoadingState and
newstate != Phonon.BufferingState):
self.button.setText('Choose File')
if newstate == Phonon.ErrorState:
source = self.media.currentSource().fileName()
print ('ERROR: could not play:', source.toLocal8Bit().data())
print (' %s' % self.media.errorString().toLocal8Bit().data())
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
app.setApplicationName('Phonon Player')
window = Window()
window.show()
sys.exit(app.exec_())
데모를 실행하려고했습니다. 목록에서 QuickTime 파일을 지원하지만 .mov 파일을 재생하려고하면 형식이 지원되지 않는다고 표시됩니다. – Johanna
@Johanna. _ 정확한 _ 오류 메시지가 무엇입니까? 다른 응용 프로그램과 함께 퀵타임 파일을 재생할 수 있습니까? 또한 : 어떤 플랫폼을 사용하고 있으며 어떤 Qt 버전을 사용하고 있습니까? – ekhumoro
정확한 오류 메시지는 "오류 :을 재생할 수 없습니다. 파일을 읽을 수 없습니다. 형식이 지원되지 않습니다"입니다. 나는 quicktime으로 파일들을 잘 읽을 수있다. 그리고 Windows 7에서 PyQT4를 사용하고 있습니다. –
Johanna