0

AndroidデバイスのSDカードにオーディオファイルを変換して保存し、インターネット経由でオーディオをサーバーに送信する方法を知りたいです。いろいろ調べましたが、全然違います。

私は.3gpオーディオ形式を持っていますが、形式は関係ありません.サーバーディレクトリにあるファイルを取得したいだけです. ガイド、チュートリアル、コメントをお願いします。大変ありがたく存じます。

4

2 に答える 2

2

ファイルをサーバーに送信するために、次のコードを書きました。

path = 送信するファイルへの絶対パス。残りのパラメーターは自明のようです。

    public static String sendFileToServer(String path, String urlString,
        String mimeType, String id) throws Exception {


    try {

        String URL = "", file_name = "";
        if (!path.equals("")) {
            file_name = path.substring(path.lastIndexOf("/") + 1);
        }

        File directory = new File(path);

        byte[] data = new byte[(int) directory.length()];
        try {
            FileInputStream fileInputStream = new FileInputStream(directory);
            fileInputStream.read(data);

        } catch (FileNotFoundException e) {
            System.out.println("File Not Found.");
            e.printStackTrace();
        } catch (IOException e1) {
            System.out.println("Error Reading The File.");
            e1.printStackTrace();
        }

        URL = Constants.WEB_ROOT_URL + urlString;
        Log.v("AppEngine Manager", "Image Upload URL: " + URL);

        HttpClient httpClient = new DefaultHttpClient();
        HttpPost postRequest = new HttpPost(URL);
        ByteArrayBody bab = new ByteArrayBody(data, file_name);
        MultipartEntity reqEntity = new MultipartEntity(
                HttpMultipartMode.BROWSER_COMPATIBLE);

        reqEntity.addPart("media_type", new StringBody(mimeType));
        reqEntity.addPart("file_name", new StringBody(file_name));
        reqEntity.addPart("file_id", new StringBody(file_name));
        reqEntity.addPart("file", bab);

        postRequest.setEntity(reqEntity);
        HttpResponse response = httpClient.execute(postRequest);
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                response.getEntity().getContent(), "UTF-8"));
        String sResponse;
        StringBuilder s = new StringBuilder();

        while ((sResponse = reader.readLine()) != null) {
            s = s.append(sResponse);
        }


        return s + "";

    } catch (Exception e) {
        // handle exception here
        Log.e(e.getClass().getName(), e.getMessage());
        return "exception";
    }
}
于 2012-09-02T20:02:38.653 に答える
0

音楽ファイルをいくつかのサーバー アプリケーションに使用できますHttpClientPOST

たとえば、PHP では、 でファイルを読み取ることができます$_FILE['key']。実際の保存と処理は、特定の要件によって異なります。また、サーバーがトランスコードされたファイルを出力するかどうかを指定しません。

オーディオ データのトランスコードには、たとえばFFmpegを使用できます。

于 2012-09-02T20:03:48.510 に答える