【发布时间】:2016-08-28 14:50:24
【问题描述】:
我是 alsa 声音编程的新手。我正在开发一个应用程序来将音频录制到 c 语言的 wav 文件中。我在网上做了一些研究,但对许多主题仍然不是很清楚。请帮忙。 这是我设置的配置。
访问:SND_PCM_ACCESS_RW_INTERLEAVED
格式:S16_LE
费率:16000
频道: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 之间做出选择?
如何确定周期大小值?我相信在 snd_pcm_sw_params_set_avail_min() 调用中使用了相同的值。
snd_pcm_readi()中要读取的帧数应该使用什么值?
snd_pcm_sw_params_set_avail_min() 和 snd_pcm_start_threshold() API 的重要性是什么?是不是必须打电话给那些
我指的是 arecord 实现和另一个示例 code 用于捕获。
提前致谢。
【问题讨论】: