我正在尝试使用 tinyalsa 的准系统程序,但pcm_start
总是失败,返回-1
并设置errno
为9
( EBADF
,即错误的文件号)。在此之前的调用pcm_open
返回一个非空指针,但它设置errno
为22
.
似乎没有有关 tinyalsa 的文档,所以我无法理解我应该做什么。我的程序基于来自 alsa(不是 tinyalsa)的示例,并且我已经阅读了 tinyalsa 的头文件。任何人都可以提供任何指导吗?
pcm * dev = pcm_open(1, 0, PCM_OUT, &config);
if (err = pcm_start(dev)) printf("err: %d\t errno: %d\n", err, errno);
(完整代码可在pastebin上找到。)
pcm_open
我推断from的前两个参数的值aplay --list-devices
,它输出:
**** List of PLAYBACK Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: ALC3232 Analog [ALC3232 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
(我在我的工作站上编译和运行它,而不是在 Android 上。)