什么是有效的gstreamer歌曲名称?

2024-05-17 00:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试理解在基于gstreamer python的音频播放器中可以使用哪些歌曲名称。找不到任何关于它的文件。例如,名为test%.mp3的歌曲产生错误:

Error: [<GError at 0x7f8a8c001620>, 'gstgiosrc.c(324): gst_gio_src_get_stream (): /GstPlayBin:playbin0/GstGioSrc:source:\nCould not open location file:///home/austinnikov/work/daemon_player/program_root/test%.mp3 for reading: Operation not supported'], 

播放没有%的歌曲。当然,我在那个目录的硬盘上有test%.mp3。你知道吗


Tags: 文件错误noterror音频播放器歌曲mp3
2条回答

请看下面的答案:[Solved]gstreamer uri format on windows
特别是'file:' + urllib.pathname2url(filepath)部分。
虽然这不能回答您更一般的问题,但它允许您播放包含某些字符的文件,如%

Rolf的回答很好,但我想补充一点,如果你的歌名和我的一样是unicode,那么pathname2url将因KeyError而失败。所以我用另一种方法,也就是Convert a filename to a file:// URL。 此函数是Player类的一部分。Player实例有player变量self.player = gst.element_factory_make("playbin")

def set_song(self, song_name):
    song_name = song_name.encode('utf8')
    path = urlparse.urljoin("file://", urllib.pathname2url(song_name))
    path = path.decode('utf8')
    self.player.set_property("uri", path))

现在我很高兴,因为我的歌名可以是unicode的,而且可以包含任何奇怪的符号。你知道吗

相关问题 更多 >