2014-02-06 28 views
2

我的媒体播放器可以播放我尝试过的所有其他文件名,除了文件名在他们Android MediaPlayer无法使用Uri.parse(“...#。mp3”)播放文件名中包含'#'字符的文件

MediaPlayer m_mediaplayer; 

一个 '#' ......

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

其中musicFile是一个字符串文件名=“/存储/模拟/ 0 /音乐/ ASOT 643(2013-12- 12)(Inspiron)/ 31 Geert Huinink & Mike van Fabio - The Kingdom [Future Favorite#641] .mp3“

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

任何帮助将不胜感激解决这一点。

回答

2

您正在向它传递一个URI。 URI中的#是一个锚标签。所以Uri.parse认为文件名在#处结束,剩下的就是一个片段。基本上,你不能使用Uri.parse。我想看看使用Uri.fromFile代替

编辑:找到一个更好的方法比fromParts- FROMFILE

+2

感谢...这是我用,为澄清:m_mediaplayer = MediaPlayer.create(这一点,URI。 fromFile(new File(musicFile))); – JunaidS

+0

谢谢!我有类似的问题与字符“?”这也适用于我。 – Micer