在ADB上为Android指定的时间运行音频捕获

时间:2016-09-30 21:07:46

标签: android command-line timeout adb audio-recording

我试图从连接到Android主板的麦克风中捕获音频。为此,我通过ADB使用tinycap。我想创建10秒长的音频文件。

当我运行命令时:

tinycap sdcard/testadudio.wav
手动

和CTRL + C,它会生成一个音频文件并捕获音频。使用命令:

timeout 10s tinycap sdcard/testadudio.wav

它会生成一个没有音频的损坏的音频文件。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

Ctrl + C发送SIGNIT,但超时发送SIGTERM。尝试将-s INT添加到超时命令。

答案 1 :(得分:0)

此操作无法完成,因为出于隐私方面的考虑,Android在未启用构建中的Tee Sink的情况下关闭了任何记录音频流的尝试。 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将允许您控制记录的长度。但是,在我的台式机Linux上安装的最新版本的tinycap上运行此命令会得到不同的结果:

$ 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控制着录音的时间。