我怎样才能发送音频文件是存放在服务器(How can I send an audio file to

2019-09-22 01:50发布

我想知道我怎么能转换和音频文件存储在Android设备的SD卡,通过互联网将音频发送到服务器。 我看很多关于它,但一切都不同了。

我已经和.3GP格式的音频,并且它不matther的格式,我只是想在服务器目录我希望它是文件。 任何指导,教程,评论,谢谢。 我将不胜感激。

Answer 1:

我写了这段代码将文件发送到服务器:

PATH =的绝对路径文件要发送。 其余PARAMS似乎言自明。

    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";
    }
}


Answer 2:

您可以使用HttpClientPOST你的音乐文件,一些服务器应用程序。

例如,在PHP中,你将能够读取该文件$_FILE['key'] 实际的存储和处理取决于您的具体要求。 另外,如果你想让你的服务器输出转码文件回你不指定。

转码的音频数据你可以使用的FFmpeg的实例。



文章来源: How can I send an audio file to be store in a server