0

URLからオーディオファイルをダウンロードしようとしています。コードは次のとおりです

try { 

            URL url = new URL(urll);
            File extStore = Environment.getExternalStorageDirectory();
            File file = new File(extStore, "disk.wav");

            long startTime = System.currentTimeMillis();
            Log.d("ImageManager", "download begining");
            Log.d("ImageManager", "download url:" + url);
            Log.d("ImageManager", "downloaded file name:" + "disk.wav");
             URLConnection ucon =  url.openConnection();
            ((HttpURLConnection) ucon).setRequestMethod("GET");
            ucon.setDoInput(false);
            ucon.connect();
            InputStream is =  ucon.getInputStream();
            BufferedInputStream bis = new BufferedInputStream(is);

            ByteArrayBuffer baf = new ByteArrayBuffer(50);
            int current = 0;
            while ((current = bis.read()) != -1) {
                baf.append((byte) current);
            }

            /* Convert the Bytes read to a String. */
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(baf.toByteArray());
            fos.close();
            Log.d("ImageManager", "download ready in" + ((System.currentTimeMillis() - startTime) / 1000) + " sec");

            mediaPlayer.reset();
            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            mediaPlayer.setDataSource(Environment.getExternalStorageDirectory().getPath() + "/disk.wav");
            mediaPlayer.start();

        } catch (Exception e) {
            e.printStackTrace();
        }

この行に到達すると:

InputStream is =  ucon.getInputStream();

それはスローします:

java.net.ProtocolException: This protocol does not support input

私は HttpURLConnection を試してみましたが、運が悪く、何が起こっているのかについての手がかりがありません。

4

1 に答える 1