我有一个 Nexus 4 设备(带有 APQ8064 声卡的 msm8960)。
我正在尝试使用 tinyalsa tinycap 实用程序从主设备 (pcmC0P0c) 录制音频,但遇到以下问题:
- 如果我不修改任何混音器控件,我会收到“无法打开 PCM 设备 - 找不到设备错误”
- 当我将其中一个 Multimedia1 开关设置为打开时(例如 MultiMedia1 Mixer SLIM_4_TX),我收到一条错误消息,提示设置硬件参数失败。
所以,我的问题是:我怎么知道哪些控件设置为 On(和/或设置其他控件)以便成功捕获音频?
编辑:
经过一番挖掘,我发现 in pcm_open
setting pcm params 在以下调用中失败:
if (ioctl(pcm->fd, SNDRV_PCM_IOCTL_HW_PARAMS, ¶ms)) {
oops(pcm, errno, "cannot set hw params");
goto fail_close;
}
如何正确设置参数以便pcm_open
成功?我看不出参数有任何问题(顺便说一句,在其他设备上工作)
编辑 2:
我看到问题在于周期大小和周期计数 - 我不能分别设置为 150 和 2 以上。当我更改它们pcm_open
成功但pcm_read
失败并显示“启动错误”消息
感谢帮助者