java - URL 中带有空格的音频文件无法在我的应用程序中播放

标签 java android streaming

我正在开发一个应用程序,它可以从我上传的服务器上播放音频文件。问题是,只有那些文件名中没有空格的文件才会播放,而文件 file 中有空格的文件不会被播放。例如,我有两个词。

word1=cricket
word2=play cricket
http://mydomain.com/games/cricket.mp3 is playing sound
http://mydomain.com/games/play cricket.mp3 is not playing

每个有空格的单词都不会被播放。我的代码有什么问题?

MediaPlayer mp = new MediaPlayer();

try {
    mp.setDataSource(url);
    mp.prepare();
    mp.start();
} 
catch (Exception e) {
    e.printStackTrace();
}

最佳答案

使用 URLEncoder 是一个不错的选择,但可能有点笨拙(您只需要转义结尾部分)。

如果您有足够的信心认为这只是空格引起的问题,另一种选择就是像这样替换它们:

String url = "http://example.com/games/play cricket.mp3"; 
String fixedUrl = url.replaceAll("\\s", "%20");

MediaPlayer mp = new MediaPlayer();

try {
    mp.setDataSource(fixedUrl);
    mp.prepare();
    mp.start();
} catch (Exception e) {
    e.printStackTrace();
}  

您可以在此处阅读有关百分比编码的更多信息:http://en.wikipedia.org/wiki/Percent-encoding

关于java - URL 中带有空格的音频文件无法在我的应用程序中播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17671213/

相关文章:

Android GCM 接收器在安装并发送空通知后触发

c# - 持续从流​​中读取?

java - 我收到“com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException : DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505

java - 为 android 实现状态更新

android - Wi-Fi直连技术

audio - 为 Web 和移动 Web 构建自适应音频流

iPhone:流式传输 WMA、MP3 和 AAC

java - Maven H2 Lucene 类未找到

java - 通过List<>重载java方法

javascript - react native android native 模块 promise 不会解决或拒绝