Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “libvlc”;VLC无法打开MRL';C:\Users\Public\Videos\Sample Videos\widlife.mwv'&引用;_Python_Vlc_Pyside_Libvlc - Fatal编程技术网

Python “libvlc”;VLC无法打开MRL';C:\Users\Public\Videos\Sample Videos\widlife.mwv'&引用;

Python “libvlc”;VLC无法打开MRL';C:\Users\Public\Videos\Sample Videos\widlife.mwv'&引用;,python,vlc,pyside,libvlc,Python,Vlc,Pyside,Libvlc,我正在编写一个pysidepython应用程序,它与VLC接口。在Ubuntu上运行很好,但当我转到Windows时,我甚至无法让VLC打开视频文件 我将VideoLAN PyQt示例()裁剪为一个窗口和视频播放器,试图找出哪里出了问题,但仍然得到了这个错误。即使在使用“打开文件”对话框返回时,我仍然会遇到相同的错误 下面是VideoLAN示例的精简版本: import sys import vlc import user from ctypes import pythonapi, c_void

我正在编写一个pysidepython应用程序,它与VLC接口。在Ubuntu上运行很好,但当我转到Windows时,我甚至无法让VLC打开视频文件

我将VideoLAN PyQt示例()裁剪为一个窗口和视频播放器,试图找出哪里出了问题,但仍然得到了这个错误。即使在使用“打开文件”对话框返回时,我仍然会遇到相同的错误

下面是VideoLAN示例的精简版本:

import sys
import vlc
import user
from ctypes import pythonapi, c_void_p, py_object
from PySide import QtGui, QtCore

class Player(QtGui.QMainWindow):
  def __init__(self, master = None):
    QtGui.QMainWindow.__init__(self, master)

    self.setWindowTitle('Media Player')

    self.instance = vlc.Instance()
    self.mediaplayer = self.instance.media_player_new()

    self.createUI()

  def createUI(self):
    self.widget = QtGui.QWidget(self)
    self.setCentralWidget(self.widget)

    self.videoframe = QtGui.QFrame()
    self.palette = self.videoframe.palette()
    self.palette.setColor(QtGui.QPalette.Window,
                          QtGui.QColor(0, 0, 0))
    self.videoframe.setPalette(self.palette)
    self.videoframe.setAutoFillBackground(True)

    self.vboxlayout = QtGui.QVBoxLayout()
    self.vboxlayout.addWidget(self.videoframe)

    self.widget.setLayout(self.vboxlayout)

    self.OpenFile()

  def OpenFile(self, filename = None):
    if filename is None:
      filename = QtGui.QFileDialog.getOpenFileName(self, 'Open File', user.home)
      filename = filename[0]
    if not filename:
      return

    print filename
    self.media = self.instance.media_new(unicode(filename))
    self.mediaplayer.set_media(self.media)

    self.media.parse()
    self.setWindowTitle(self.media.get_meta(0))

    if sys.platform == 'linux2':
      self.mediaplayer.set_xwindow(self.videoframe.winId())
    elif sys.platform == 'win32':
      pythonapi.PyCObject_AsVoidPtr.restype = c_void_p
      pythonapi.PyCObject_AsVoidPtr.argtypes = [py_object]
      hWnd = pythonapi.PyCObject_AsVoidPtr(self.videoframe.winId())
      self.mediaplayer.set_hwnd(hWnd)
    elif sys.platform == 'darwin':
      self.mediaplayer.set_agl(self.videoframe.windId())

    self.mediaplayer.play()

if __name__ == '__main__':
  app = QtGui.QApplication(sys.argv)
  player = Player()
  player.show()
  player.resize(640, 480)

  sys.exit(app.exec_())
如果要打开文件(而不是流或其他源),libVLC要求您以“file:///”启动文件路径。在windows上使用python中的文件路径时,还需要使用\来转义\(a la \')

因此,用于调用文件的字符串应如下所示: 'file:///C:\用户\公共\视频\示例视频\野生动物.mwv'

另一个注意事项:如果可以,最好在文件路径(即“示例视频”)中留出任何空格