Запустить захват звука в течение указанного времени для Android в ADB

#android #command-line #timeout #adb #audio-recording

#Android #командная строка #тайм-аут #adb #аудиозапись

Вопрос:

Я пытаюсь захватить звук с микрофона, который я подключил к плате Android. Для этого я использую tinycap через ADB. Я хочу создавать аудиофайлы длиной 10 секунд.

Когда я запускаю команду:

 tinycap sdcard/testadudio.wav
  

и CTRL C вручную, он генерирует аудиофайл и захватывает звук. С помощью команды:

 timeout 10s tinycap sdcard/testadudio.wav
  

Он генерирует поврежденный аудиофайл без звука.

Есть идеи?

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

1. Работает ли это на некорневых телефонах?

2. Как вы нашли конфигурации tinymix для записи? Я ищу конфигурацию tinymix для записи голосового вызова, но я не знаю, где я могу найти конфигурации tinymix

Ответ №1:

Ctrl C отправляет SIGNIT , но время ожидания отправляет SIGTERM . Попробуйте добавить -s INT в свою команду тайм-аута.

Ответ №2:

Это невозможно сделать, поскольку из-за проблем с конфиденциальностью Android отключает любые попытки записи аудиопотока без включения приемника Tee в сборке. https://source.android.com/devices/audio/debugging

Несмотря на это, следующая часть ответа касается tinycap:

Хотя фактические аргументы могут отличаться, tinycap на самом деле, похоже, это поддерживает.

Выполняется

 $ adb -d shell tinycap
Usage: tinycap file.wav [-D card] [-d device] [-c channels] [-r rate] 
[-b bits] [-p period_size] [-n n_periods] [-T capture time]
  

указывает, что -T это позволит вам контролировать длину записи. Однако запуск этого в последней версии tinycap , установленной на моем рабочем столе linux, дает другой результат:

 $ tinycap
Usage: tinycap {file.wav | --} [-D card] [-d device] [-c channels] [-r rate]
[-b bits] [-p period_size] [-n n_periods] [-t time_in_seconds]

Use -- for filename to send raw PCM to stdout
  

Здесь, похоже, -t контролируется длина записи.