Intereting Posts
Ошибки XML-рендеринга Предварительный просмотр Android N Может ли TCriticalSection.Acquire безопасно вызываться более одного раза по потоку? ViewGroup {TextView, …} .getMeasuredHeight дает неправильное значение меньше реальной высоты Как изменить FloatingActionButton между вкладками? Получить массив KEYS для каждого элемента под jsonarray Закругленные кнопки Невозможно установить тег Date Taken / DateTime с помощью ExifInterface в Android Зарегистрировать локальную трансляцию внутри пользовательского представления Создать без знака APK с Gradle ViewPager + Adapter in Fragment => laggy swiping DownloadManager.ACTION_DOWNLOAD_COMPLETE широковещательный приемник, получающий один и тот же идентификатор загрузки более одного раза с разными статусами загрузки в Android Уведомление Android не показывает его содержимое, когда приложение не работает Как показать всплывающее сообщение без контекста BLE с Android 5.0: Как заставить устройство действовать как Central AND Server? Android как сохранить объект в файл?

Как приостановить запись голоса в Android?

Моя цель – приостановить запись файла. Я вижу на сайте разработчика Android, но Media Recorder не имеет опции паузы.

Java поддерживает слияние двух аудиофайлов программно, но In android не работает.

Присоединить два файла WAV от Java?

А также я использовал устройства записи аудио устройств по умолчанию, которые доступны на всех устройствах, но в Samsung несколько устройств не восстановили путь записи.

Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); startActivityForResult(intent,REQUESTCODE_RECORDING); 

Любая помощь для записи голоса с функцией паузы.

Solutions Collecting From Web of "Как приостановить запись голоса в Android?"

http://developer.android.com/reference/android/media/MediaRecorder.html

У MediaRecorder нет методов паузы и возобновления. Вместо этого вам нужно использовать методы остановки и запуска.

Вы можете отсылать мой ответ здесь, если у вас еще есть эта проблема. Для уровня API> = 24 метода паузы / возобновления доступны в классе Android MediaRecorder.

Для уровня API <24

Добавьте зависимость ниже в файле gradle:

 compile 'com.googlecode.mp4parser:isoparser:1.0.2' 

Решение состоит в том, чтобы остановить рекордер, когда пользователь приостанавливается и возобновляется снова, как уже упоминалось во многих других ответах в stackoverflow. Храните все аудио / видео файлы, сгенерированные в массиве, и используйте метод ниже для объединения всех медиафайлов. Пример берется из библиотеки mp4parser и немного модифицируется по моей потребности.

 public static boolean mergeMediaFiles(boolean isAudio, String sourceFiles[], String targetFile) { try { String mediaKey = isAudio ? "soun" : "vide"; List<Movie> listMovies = new ArrayList<>(); for (String filename : sourceFiles) { listMovies.add(MovieCreator.build(filename)); } List<Track> listTracks = new LinkedList<>(); for (Movie movie : listMovies) { for (Track track : movie.getTracks()) { if (track.getHandler().equals(mediaKey)) { listTracks.add(track); } } } Movie outputMovie = new Movie(); if (!listTracks.isEmpty()) { outputMovie.addTrack(new AppendTrack(listTracks.toArray(new Track[listTracks.size()]))); } Container container = new DefaultMp4Builder().build(outputMovie); FileChannel fileChannel = new RandomAccessFile(String.format(targetFile), "rw").getChannel(); container.writeContainer(fileChannel); fileChannel.close(); return true; } catch (IOException e) { Log.e(LOG_TAG, "Error merging media files. exception: "+e.getMessage()); return false; } } 

Используйте флаг isAudio как истинный для аудиофайлов и false для видеофайлов.

У меня было такое требование в одном из моих проектов. Мы сделали так, как сделать необработанный файл для сохранения записанных данных в начале записи с использованием AudioRecord , для каждого резюме мы добавляем данные в тот же файл

как

 FileOutputStream fos= new FileOutputStream(filename, true); 

Здесь имя файла является именем необработанного файла и добавляет к нему новые данные записи.

И когда пользователь останавливает запись, мы преобразуем весь необработанный файл в .wav (или другие) форматы. Извините, что я не могу опубликовать весь код. Надеюсь, это даст вам направление для работы.

Вы не можете сделать это с помощью Android API, но вы можете сэкономить много файлов mp4 и объединить его с помощью mp4parser : мощная библиотека, написанная на Java. Также см. Мой простой рекордер с «паузой»: https://github.com/lassana/continuous-audiorecorder .