为什么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);