2016-09-06 11 views
0

gstreamerのpythonベースのオーディオプレイヤーで使用できる曲の名前を理解しようとしています。それに関するドキュメントが見つかりません。たとえば、名前test%.mp3を持つ曲がエラーを生成:%なし有効なgstreamerの曲名は何ですか?

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がそのディレクトリのハードドライブにある。

答えて

1

[Solved]gstreamer uri format on windows
特に'file:' + urllib.pathname2url(filepath)の部分を参照してください。これはあなたのより一般的な質問に答えていませんが
、それは%

+0

は完全に機能します。 – Alexey

0

のような特定の文字が含まれるファイルを再生することを許可んロルフの答えは素晴らしいですが、私はあなたのsongs_namesその後、鉱山としてUnicodeである場合いることを追加したいpathname2urlKeyErrorで失敗します。だから私はちょっと別のやり方でそれをやった。でも、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であることと、任意の奇妙な記号を含めることができます原因はかなり満足しています。

関連する問題