Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么MediaPlayer静态方法create()中使用的Uri抛出java.lang.IllegalArgumentException?_Java_Android_Uri_Android Mediaplayer_Illegalargumentexception - Fatal编程技术网

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

为什么MediaPlayer静态方法create()中使用的Uri抛出java.lang.IllegalArgumentException?,java,android,uri,android-mediaplayer,illegalargumentexception,Java,Android,Uri,Android Mediaplayer,Illegalargumentexception,问题是,当我们使用uri使用Mediaplayer.create(Context,uri)获取Mediaplayer类的实例时,它会抛出异常,如下所示: java.lang.IllegalArgumentException 如果音乐文件的路径为Url编码形式(,即路径:storage/sdcard/song%20music%20file.mp3),则出现上述例外情况。路径为电话存储,而不是internet上歌曲的Url Uri uri = Uri.parse(path); //the bel

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

 java.lang.IllegalArgumentException
如果音乐文件的路径为Url编码形式(
,即路径:storage/sdcard/song%20music%20file.mp3
),则出现上述例外情况。路径为
电话存储
,而
不是internet上歌曲的Url

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

而在文件路径的其他情况下,它的工作原理类似于charm,为什么会出现此问题,如果有任何方法可以解决此问题,我们如何才能做到这一点?如有任何建议、帮助,我们将不胜感激。

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

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