Android 安卓:MediaPlayer可以';t加载带有印地语字符的URL
运行此代码时引发异常。如果您将URL中的印地语字符替换为“Hello”,则可以很好地播放文件 当我在浏览器中加载这个URL(带有印地语字符)时,它就可以正常运行了 发生什么事了 这是我的密码:Android 安卓:MediaPlayer可以';t加载带有印地语字符的URL,android,url,unicode,hindi,Android,Url,Unicode,Hindi,运行此代码时引发异常。如果您将URL中的印地语字符替换为“Hello”,则可以很好地播放文件 当我在浏览器中加载这个URL(带有印地语字符)时,它就可以正常运行了 发生什么事了 这是我的密码: MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(getResources().getString(R.string.test)); mediaPlayer.prepare(); 以下是字符串资源定义:
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(getResources().getString(R.string.test));
mediaPlayer.prepare();
以下是字符串资源定义:
<string name="test">http://translate.google.com/translate_tts?q=आलू</string>
http://translate.google.com/translate_tts?q=आलू
我认为unicode字符在URL中是不合法的,除非你对它们进行编码。以下是规格:
我认为unicode字符在URL中是不合法的,除非你对它们进行编码。以下是规格:
+1 tdammers是正确的,您不能在数据中使用非ASCII字符 你可以把它们放在一个盒子里,这就是:
http://translate.google.com/translate_tts?q=आलू
浏览器通常支持IRIs(有一些限制),但许多其他工具不支持(显然包括Android媒体播放器)。对于这些工具,您必须将IRI转换为URI。这是通过以下方式实现的:
- 在地址的主机名部分提取任何非ASCII字符,并使用算法对其进行编码
- 在地址的其他部分(如这里的查询)使用任何非ASCII字符,并对其UTF-8字节表示形式进行编码
http://translate.google.com/translate_tts?q=%e0%a4%86%e0%a4%b2%e0%a5%82
在任何地方都可以用。(并将这样的URI粘贴到浏览器中,通常会以IRI格式显示,并在地址栏中显示印地语。)+1 tdammers是正确的,您不能在浏览器中使用非ASCII字符 你可以把它们放在一个盒子里,这就是:
http://translate.google.com/translate_tts?q=आलू
浏览器通常支持IRIs(有一些限制),但许多其他工具不支持(显然包括Android媒体播放器)。对于这些工具,您必须将IRI转换为URI。这是通过以下方式实现的:
- 在地址的主机名部分提取任何非ASCII字符,并使用算法对其进行编码
- 在地址的其他部分(如这里的查询)使用任何非ASCII字符,并对其UTF-8字节表示形式进行编码
http://translate.google.com/translate_tts?q=%e0%a4%86%e0%a4%b2%e0%a5%82
在任何地方都可以用。(并将这样的URI粘贴到浏览器中,通常会以IRI格式显示,地址栏中会显示印地语。)我从其他人那里找到了解决方案。您必须先对文本进行编码。然后必须在“ie”参数中添加encode方法。如果您将mediaplayer的url设置为可以播放所需的单词,则将显示您的文本。我已从其他人那里找到解决方案。您必须先对文本进行编码。然后必须在“ie”参数中添加encode方法。如果您将mediaplayer的url设置为可以播放所需单词,则会显示您的文本。如果您尝试将mediaplayer.setDataSource()的编码uri与%-编码一起使用,则它仍然不会播放该MP3。但如果你把它粘贴到Chrome或Firefox上,它就会像你说的那样转换并播放@mellog:如果您找到了在mediaplayer中使用unicode字符播放url的任何解决方案,请提供解决方案。很抱歉,没有找到解决方案-如果您尝试使用带%-编码的编码uri播放mediaplayer.setDataSource(),它仍然不会播放MP3。但如果你把它粘贴到Chrome或Firefox上,它就会像你说的那样转换并播放@mellog:如果您找到了在mediaplayer中播放带有unicode字符的url的解决方案,请提供解决方案。很抱歉,没有找到解决方案-刚刚放弃Hi mellog,您找到了在mediaplayer中使用该url播放声音的解决方案吗?我也面临着同样的问题。嗨,你找到了在mediaplayer中使用该URL播放声音的解决方案吗?我也面临同样的问题。