首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用alsa捕获pcm

利用alsa捕获pcm
EN

Stack Overflow用户
提问于 2016-05-03 13:51:32
回答 1查看 924关注 0票数 1

我是阿尔萨音效节目的新手。我正在开发一个应用程序,用c语言将音频记录到wav文件中。我在网上做了一些研究,但对很多话题还是不太清楚。请帮帮忙。这是我正在设置的配置。

访问: SND_PCM_ACCESS_RW_INTERLEAVED

格式: S16_LE

比率: 16000

频道:1

我一点也不怀疑:

  1. 我对期间大小和期间时间设置非常困惑。snd_pcm_hw_params_set_period_time_near()snd_pcm_hw_params_set_period_size_near().有什么区别?应该调用哪个API来捕获?类似地,也有snd_pcm_hw_params_set_buffer_time_near()snd_pcm_hw_params_set_buffer_size_near().如何在这两个API之间作出决定?
  2. 如何确定周期大小值?我认为在snd_pcm_sw_params_set_avail_min()调用中使用了相同的值。
  3. snd_pcm_readi()中读取的帧数应该使用什么值?
  4. snd_pcm_sw_params_set_avail_min()和snd_pcm_start_threshold() API的重要性是什么?一定要打电话给那些

我指的是记录实现和另一个捕获示例代码

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-05-03 20:44:06

周期时间描述与周期大小相同的参数。如果目前还不知道这一比率,这可能是有用的。

在每段时间结束时,你都会受到干扰(也就是说,如果你在等待数据的话,你就有机会醒来)。如果您知道每次要读取多少数据,请尝试将其用作句点大小。

想要处理多少帧就读多少。

avail_min参数指定在中断导致应用程序实际被唤醒之前必须有多少帧可用。

开始阈值指定当您试图读取那么多帧时,设备将自动启动。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37006160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档