Сохранение и воспроизведение аудиофайла

#java #android #audio

#java #Android #Аудио

Вопрос:

Я пытаюсь сохранить и воспроизвести аудиофайл. Сохранение выглядит так, как будто оно работает нормально, но у меня проблема с воспроизведением этого файла.

Это то, что я пробовал:

 // Save the audio
try (OutputStream out = new FileOutputStream(getFilesDir()   "/output.mp3")) {
    System.out.println(getFilesDir());
    out.write(audioContents.toByteArray());
    System.out.println("Audio content written to file "output.mp3"");
}

// Play the audio
String path = getFilesDir()   "/output.mp3";
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(path);
recorder.prepare();
recorder.start();
 

И это то, что я получаю:

I/System.out: /data/user/0/ch.yourclick.kitt/файлы Аудиоконтент, записанный в файл «output.mp3» С System.err: java.lang.RuntimeException: сбой setAudioSource. W/System.err: на android.media.MediaRecorder.setAudioSource(собственный метод)

Как я могу просто воспроизвести этот аудиофайл?

Комментарии:

1. Вы забыли out.close();

2. recorder.setOutputFile(path); Не знаю… но если вы хотите воспроизвести файл, я бы подумал, что вам понадобится входной файл, например: recorder.setInputFile(path);

3. @blackapps если я добавлю его, Android Studio сообщит мне избыточное ‘close ()’ . И этот метод setInputFile() не существует в MediaRecorder .

4. Тогда вам лучше послушать меня в Android Studio. Закройте его.

5. OutputStream out Почему бы и нет FileOutputStream out ?