1

サーバーからオーディオ 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 を開くと、ファイルを保存するかダウンロードするかを尋ねるダウンロード ダイアログが表示されます。

では、ヌルポインタ例外はどこで発生していますか?

4

1 に答える 1

1

あなたのURLからの応答がありませんでした(プロキシの問題)

このチュートリアルに目を向ける

そしてこれ

于 2013-01-24T07:16:17.237 に答える