サーバーからオーディオ mp3 ファイルを取得して、Android アプリで再生しようとしています。関数のコードは次のとおりです。
protected void managerOfSound(String theText) throws MalformedURLException, IOException {
if (mp != null) {
mp.reset();
mp.release();
}
URLConnection conn = new URL("http://192.168.1.68:3000/play/song.mp3").openConnection();
conn.connect();
InputStream stream = conn.getInputStream();
File file = File.createTempFile("downloadingMedia", ".mp3");
byte[] buffer = new byte[4096];
int n = - 1;
OutputStream output = new FileOutputStream( file );
while ( (n = stream.read(buffer)) != -1)
{
if (n > 0)
{
output.write(buffer, 0, n);
}
}
output.close();
System.out.println("PATH IS" + file.getAbsolutePath());
mp.setDataSource(file.getAbsolutePath());
mp.start();
}
ただし、行 mp.setDataSource で nullpointerexception が発生します。ファイルの絶対パスが存在することを確認しました。
サーバー側でも、リクエストが正しく受信され、200 レスポンスであることを確認しました。
ブラウザで URL を開くと、ファイルを保存するかダウンロードするかを尋ねるダウンロード ダイアログが表示されます。
では、ヌルポインタ例外はどこで発生していますか?