1

当我尝试在我的 Linux 机器上播放文件名中带有“#”的本地文件时,它显示:

Error: message about my installation of GStreamer missing plugin /var/tmp/portage/media-libs/gst-plugins-base-0.10.36-r1/work/gst-plugins-base-0.10.36/gst/playback/gstplaybasebin.c(1686): gen_source_element (): /GstPlayBin:player:
No URI handler for file

我用它来设置 URI:

self.player.set_property('uri', 'file://' + filepath)

其中文件路径是例如 MP3 文件“/home/me/untitled #1.mp3”的绝对路径

是否有某种逃避或解决方法?

4

1 回答 1

0

filepath应该是 URL 引用。

使用urllib.parse.quote()(Python 3) 或urllib.quote()(Python 2)

这就是我使用的(Python 3),它也应该在 Windows 上工作:

def file_to_uri(filename):
    filepath = os.path.abspath(filename) 
    drive, filepath = os.path.splitdrive(filepath)
    filepath = urllib.parse.quote(filepath.replace(os.sep, '/'))
    return 'file://%s%s' % (drive, filepath)
于 2015-03-25T20:24:30.240 回答