2

アップロードしたサーバーからオーディオファイルを再生するアプリケーションを開発しています。問題は、ファイル名にスペースが含まれていないファイルのみが再生され、ファイル ファイルにスペースが含まれているファイルが再生されないことです。たとえば、私には 2 つの単語があります。

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();
}
4

1 に答える 1

4

を使用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をご覧ください。

于 2013-07-16T08:20:11.850 に答える