gpt4 book ai didi

python - libvlc "VLC is unable to open the MRL ' C :\Users\Public\Videos\Sample Videos\Wildlife. mwv'"

转载 作者:行者123 更新时间:2023-12-01 05:48:19 25 4
gpt4 key购买 nike

我正在编写一个与 VLC 交互的 PySide Python 应用程序。在 Ubuntu 上运行得很好,但当我转到 Windows 时,我什至无法让 VLC 打开视频文件。

我将 VideoLAN PyQt 示例 ( http://git.videolan.org/?p=vlc/bindings/python.git;a=blob;f=examples/qtvlc.py;h=34aeedce116e05f575eb0ebffdacf8f06db80402;hb=HEAD ) 修剪为仅一个窗口和视频播放器,以尝试找出问题所在,但仍然出现此错误。即使使用打开文件对话框的返回,我仍然遇到相同的错误。

下面是 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\')。

因此,用于调用文件的字符串应如下所示:'文件:///C:\Users\Public\Videos\Sample Videos\Wildlife.mwv'

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

关于python - libvlc "VLC is unable to open the MRL ' C :\Users\Public\Videos\Sample Videos\Wildlife. mwv'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15345692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com