我正在尝试使用 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 上。)