为什么Uri在MediaPlayer静态方法create()中使用会抛出java.lang.IllegalArgumentException?

Why Uri used in MediaPlayer static method create() throws java.lang.IllegalArgumentException?

问题是当我们使用 uri 使用 Mediaplayer.create(Context, uri) 获取 Mediaplayer class 的实例时,它会抛出 exception 如下所示:

 java.lang.IllegalArgumentException

当我们的音乐文件路径是 Url 编码形式 (i.e,path : storage/sdcard/song%20music%20file.mp3) 路径是歌曲的 phone storagenot the url 时,就会出现上述异常互联网。

Uri uri = Uri.parse(path);
//the below line creates the problem.
mediaplayer = Mediaplayer.create(context, uri);

而在文件路径的其他情况下,它就像魅力一样工作为什么会出现这个问题,如果有任何方法可以解决这个问题,我们该怎么做?任何建议,帮助将不胜感激。

您可以使用如下代码解决问题:

Uri myUri = Uri.parse(Uri.encode(path));
//then use myUri like
mediaplayer = Mediaplayer.create(context, myUri);