ALSA:循环声音问题

发布于 2024-09-25 17:42:06 字数 860 浏览 8 评论 0原文

我编写了一个小程序,用于在嵌入式 Linux 板上测试 ALSA 库。该程序配置 ALSA,播放单个声音,然后等待 1 分钟再退出。

这是我观察到的情况:播放声音后,有一段无声停顿,然后再次播放声音。我 100% 肯定该程序本身不会再次播放。

为了进一步研究,我做了另一个实验:在同一个板上播放时,我播放了不同的声音。这很好用。接下来我再次执行我的 hello world 程序。这次除了周期性的声音之外,我还听到了aplay播放的其他声音的残余。

我怀疑 alsa-lib 或声音驱动程序中的缓冲区没有被清除。或者我可能没有正确配置软件参数。 snd_pcm_dump 吐出以下信息:

  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 1
  rate         : 8000
  exact rate   : 8000 (8000/1)
  msbits       : 16
  buffer_size  : 32768
  period_size  : 2048
  period_time  : 256000
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 2048
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 32768
  silence_threshold: 0
  silence_size : 0
  boundary     : 1073741824

我还应该提到的是,我在 Ubuntu 下运行它时没有看到任何这些信息。

I have written a small program that tests the ALSA library on an Embedded Linux board. The program configures ALSA, plays a single sound and then waits 1 minute before exiting.

Here is what I am observing: after playing the sound, there is silent pause and then the sound is played again. I am 100% positive that the program itself is not playing it again.

To further investigate, I did another experiment: With aplay on the same board, I played a different sound. This worked fine. Next I executed my hello world program again. This time in addition to the periodic sound, I heard remnants other the sound played by aplay.

I suspect that a buffer either in alsa-lib or the sound driver is not getting cleared. Or that I might have not configured a software parameter correctly. snd_pcm_dump spits out the following information:

  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 1
  rate         : 8000
  exact rate   : 8000 (8000/1)
  msbits       : 16
  buffer_size  : 32768
  period_size  : 2048
  period_time  : 256000
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 2048
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 32768
  silence_threshold: 0
  silence_size : 0
  boundary     : 1073741824

I should also mention that I do not see any of this is I run it under Ubuntu.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

霊感 2024-10-02 17:42:06

我在不使用 alsa-lib 的情况下遇到了一些类似的问题。但有了 alsa i 和 ubuntu ts self。我发现煞费苦心地检查驱动程序并测试它们是最好的选择,同时使用诸如speaker-test -c2 -twav之类的东西也有很大的帮助
至于你的萨尔萨舞实施,我看不出有什么可看的。但恐怕如果没有更多信息,我无法提供更多帮助。

I had some similar issues not using alsa-lib. But with alsa i and ubuntu ts self. I found painstakingly going through the drivers and testing them to be the best option also using something like speaker-test -c2 -twav to be a big help
As for your salsa implementation I don't see anything to look at. But I am afraid without more info I can't be of more assistance.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文