Android MediaPlayer无法使用Uri.parse(“...#。mp3”)播放文件名中包含“#”字符的文件

时间:2014-02-06 03:17:29

标签: android android-mediaplayer

我的媒体播放器可以播放我尝试过的所有其他文件名,除非文件名中包含“#”

MediaPlayer m_mediaplayer;

...

m_mediaplayer = MediaPlayer.create(this, Uri.parse(musicFile));

其中musicFile是文件名的字符串=“/ storage / emulated / 0 / Music / ASOT 643(2013-12-12)(Inspiron)/ 31 Geert Huinink& Mike van Fabio - 王国[Future Favorite# 641] .MP3"

m_mediaplayer返回null ...如果我从文件名中删除'#',它就像所有其他歌曲一样工作。似乎是Uri.parse(musicFile)与它看起来的主题标签相混淆。

在解决此问题时,我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

你传给它一个URI。 URI中的#是锚标记。 SO Uri.parse认为文件名以#结尾,其余的是片段。基本上,你不能使用Uri.parse。我会考虑使用Uri.fromFile而不是

编辑:找到比fromParts- fromFile更好的方法