【问题标题】:What python library to use for non-blocking audio I/O on OSX?在 OSX 上用于非阻塞音频 I/O 的 python 库是什么?
【发布时间】:2011-07-01 09:13:31
【问题描述】:

我想用 Python 读写音频。我尝试了 PyAudio 和 audiolab,但两者都只阻止音频 I/O(即在它们播放或录制时你不能做任何其他事情)。

现在我需要一个在 OSX 上执行非阻塞音频 I/O 的库。 LGPL/BSD 许可证的加分点,与 pip 的兼容性和 numpy 数组的播放!

【问题讨论】:

  • 有什么理由不简单地使用线程?
  • 线程仍然不启用连续音频输出,因为音频线程仍然必须停止播放才能将新样本推送到音频队列。
  • 你为什么用“pip”和“numpy”标记这个问题?尽管 numpy 可能与问题无关,但我无法想象为什么 pip 会这样做。
  • @gotgenes:我认为最后一句话说得很清楚。如果可能的话,我希望能够使用 pip 安装它。
  • @BastiBechtold:明白。你觉得你的问题是关于 pip,本身吗? “pip”标签表示,“我是一个关于 pip 的问题。”

标签: python macos audio numpy pip


【解决方案1】:

几天前,我向pyAudio 提交了一个启用非阻塞音频I/O 的补丁。

从 0.2.7 版本开始,补丁已经发布。现在 PyAudio 正式支持非阻塞 I/O。

【讨论】:

  • 大约一年前,我决定尝试一下 CFFI。这发展成PySoundCard,这是一个比 PyAudio 更 Pythonic 的 portaudio 包装器。我建议大家看看 PySoundCard(它的兄弟 PySoundFile)。
【解决方案2】:

你看过 Pygame 吗?它是 SDL 库的一个非常全面的包装器,它允许您在进行其他处理的同时排队播放音乐。

http://www.pygame.org/docs/ref/mixer.html

它还有在 pygame Sound 对象和 Numpy 数组之间转换的例程。

http://www.pygame.org/docs/ref/sndarray.html

【讨论】:

  • 伙计,在 OSX 上构建这个东西真是太痛苦了!我不太喜欢 Pygame 几乎无法控制音频的播放方式。虽然对我当前的项目来说不是绝对必要的,但 Pygame 缺乏对通道映射、多通道播放和录制的支持,而我希望这些支持可用。不过,与之合作非常有趣。对于游戏开发来说一定很棒!谢谢你的提示!
猜你喜欢
  • 2021-05-24
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2020-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多