Звуковой файл, захваченный MediaRecorder, прерывается после его отправки на сервер - PullRequest
1 голос
/ 17 мая 2019

Мое приложение записывает аудиоклип и отправляет клип на сервер с помощью Retrofit2 после завершения записи. Файл получен на сервере, но файл поврежден, что я имею в виду под повреждением, так как он не может быть воспроизведен.Я использую следующий URL (пример /audio/myaudio.mp4) для воспроизведения аудиоклипа, который я пробовал с другим аудиофайлом с помощью почтальона. Аудиофайл может быть успешно воспроизведен. Кроме того, даже при загрузке аудиоклипа, захваченного Android через Filezilla, также имеетсятот же битый файл.

Вот как я записываю аудио:

mRecorder = new MediaRecorder();
        mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        mRecorder.setAudioEncodingBitRate(32000);
        mRecorder.setAudioSamplingRate(44100);

 File root = android.os.Environment.getExternalStorageDirectory();
    File file = new File(root.getAbsolutePath() + "/Audios");
    if (!file.exists()) {
        file.mkdirs();
    }

    outputFile =  root.getAbsolutePath() + "/Audios/" + String.valueOf(System.currentTimeMillis() + ".mp3");
    Log.d("filename",outputFile);
    mRecorder.setOutputFile(outputFile);
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

Я также пытался изменить расширение файла на .mp3, .mp4 и .3gpp, но ни одиниз них, кажется, работают на стороне сервера.Чтобы прояснить ситуацию, я прикрепил код, который я использовал для отправки аудиофайла на сервер с помощью Retrofit2:

Те же вопросы задавал кто-то другой.Я пробовал эти решения, но это также не работает.Может кто-нибудь помочь мне.

вопрос: Звуковой файл, захваченный MediaRecorder, не работает после его отправки на сервер с помощью Retrofit 2

1 Ответ

1 голос
/ 17 мая 2019

Формат AAC у меня работал

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
...