Аудиозапись, глючный звукAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Аудиозапись, глючный звук

Сообщение Anonymous »


Я использую AudioRecord API для записи внутреннего звука. Иногда этот код работает и записывает звук отлично, но иногда он дает сбои. Я пробовал разные методы записи, но ни один из них не работал точно, иногда в фоновом режиме все еще случаются сбои.

Ссылка на плохо записанный звук:

Конфигурация AudioPlaybackCaptureConfiguration = новый AudioPlaybackCaptureConfiguration.Builder(mediaProjection) .addMatchingUsage(AudioAttributes.USAGE_MEDIA) .строить(); audioFormat = новый AudioFormat.Builder() .setEncoding(AudioFormat.ENCODING_PCM_16BIT) .setSampleRate(44100) .setChannelMask(AudioFormat.CHANNEL_IN_STEREO) .строить(); audioRecord = новый AudioRecord.Builder() .setAudioFormat(аудиоформат) .setAudioPlaybackCaptureConfig(конфигурация) .строить(); audioRecord.startRecording(); новая тема(() -> { в то время как (записьАудио) { пытаться { конечный буфер ByteBuffer = ByteBuffer.allocateDirect(AudioRecord.getMinBufferSize(44100, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT)); пытаться { os = новый FileOutputStream(context.getExternalFilesDir(Environment.DIRECTORY_MUSIC) + "/tempAudio.pcm"); } catch (Исключение е) { е.printStackTrace(); } Log.e("writeAudioDataToFile", "Запись."); Log.e("writeAudioDataToFile", String.valueOf(AudioRecord.getMinBufferSize(44100, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT))); audioRecord.read(buffer.array(), 0, AudioRecord.getMinBufferSize(44100, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT)); os.write(buffer.array(), 0, AudioRecord.getMinBufferSize(44100, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT)); буфер.очистить(); } catch (Исключение е) { записьАудио = ложь; аудиоЗапись.стоп(); аудиоЗапись.выпуск(); аудиоЗапись = ноль; Данные = ноль; пытаться { ОС.закрыть(); } catch (Исключение e1) { е.printStackTrace(); } ОС = ноль; новый файл(context.getExternalFilesDir(Environment.DIRECTORY_MUSIC) + "/tempAudiıInProcess.pcm").delete(); новый файл(context.getExternalFilesDir(Environment.DIRECTORY_MUSIC) + "/tempAudio.pcm").delete(); новый файл(context.getExternalFilesDir(Environment.DIRECTORY_MUSIC) + "/tempAudio.mp3").delete(); showNotification (контекст); е.printStackTrace(); } Он должен записывать звук без сбоев в фоновом режиме.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Аудиозапись, глючный звук
    Гость » » в форуме Android
    0 Ответы
    15 Просмотры
    Последнее сообщение Гость
  • Speex Echo Canceller добавляет глючный звук C#
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Эмулятор Android показывает глючный экран со странными артефактами
    Anonymous » » в форуме Android
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Аудиозапись в ОС Android 14 не работает должным образом
    Anonymous » » в форуме Android
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Аудиозапись периодически терпит неудачу на iOS с использованием Avaudiorecorder в .net maui (.net 8)
    Anonymous » » в форуме IOS
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»