【问题标题】:ESP32 based internet radio基于 ESP32 的网络收音机
【发布时间】:2021-03-01 13:07:57
【问题描述】:

我已经构建了一个基于 ESP32 和 VS1053B MP3 解码器的网络收音机。收音机可以用一个数字正常工作 我最喜欢的电台,但对于某些人来说,在接收期间存在“间隙”(或口吃)。 ESP32 应用程序是 编码为将 32 个字节(推荐值)转发到 VS1053B。我想知道是否有办法通过使用硬件或软件来“缓冲”更多字节到 ESP32 和/或 VS1053B,以便它可以更好地处理“间隙”。对该主题的搜索导致使用循环(环形)缓冲区,但我没有找到关于如何实现它的可靠文章。任何建议将不胜感激。谢谢。

有一个 Youtube 视频准确描述了我想要完成的工作:

#206 ESP32 用于网络收音机的循环缓冲区 - 和 ESP32 WiFi 问题

https://www.youtube.com/watch?v=6BK4fzRaFGY
Youtuber Ralph S. Bacon 先生

【问题讨论】:

    标签: esp32


    【解决方案1】:

    谷歌的术语是“抖动缓冲区”。简而言之,您在接收带有音频数据的数据包和将该数据发送到解码器芯片之间创建了一个固定的时间延迟。当从您的广播电台接收到第一个音频数据包时,将其存储在 FIFO 缓冲区中。继续这样做,直到你有例如缓冲音频的 100 毫秒(确切数量取决于您期望的抖动量)。然后开始将较早的数据包馈送到解码器。如果从源中获取新音频时出现问题,您有 100 毫秒的缓冲时间可以在音频用完之前播放。

    【讨论】:

      猜你喜欢
      • 2014-06-16
      • 1970-01-01
      • 2010-11-05
      • 2010-11-20
      • 2010-10-23
      • 2022-12-20
      • 2015-07-12
      • 2020-08-06
      • 1970-01-01
      相关资源
      最近更新 更多