【问题标题】:Manually driving the PC internal speaker手动驱动 PC 内置扬声器
【发布时间】:2011-09-04 22:01:32
【问题描述】:

有什么方法可以用任何语言(首选 C)直接在 Windows/Linux 下连接 PC 内部扬声器? (没有 DOS)我不想在给定的持续时间内以特定频率驱动它(没有 beep(frq, mssecs)),但我宁愿直接发送信号。

我想是一位分辨率,所以我打算使用 PWM 驱动来播放波形声音。

【问题讨论】:

  • 请注意,越来越多的电脑没有内置扬声器。
  • 这至少是您嵌入的 2 个问题,因为 windows 命令将(可能)与 linux 命令完全不同。另外,我怀疑一个好的老式搜索会迅速提供您的信息。
  • 当然,我只是想玩一些有趣的黑客,我的电脑确实有内置扬声器。
  • @KevinDTimm 我不在乎它是 Windows 还是 Linux,我同时使用这两种操作系统,我只是将它包含在问题中,因为我怀疑它在 Linux 中可能比 Windows 更容易,我会对任何答案都很满意。我应该编辑它还是针对同一件事提出两个不同的问题?我也进行了足够多的搜索,但我只获得了有关 beep() 命令(这不是我想要的)或旧 DOS 替代方案(在 Windows 下不再工作)的页面。

标签: audio speaker


【解决方案1】:

这是一个中断,您可以将其嵌入到任何允许 ASM 在其代码中的语言中。或者你可以用 pascal 编写一个小程序并调用它。 我不记得中断了,但快速搜索会为您提供该信息。

【讨论】:

    【解决方案2】:

    在 Linux 上,您可能想要制作一个内核驱动程序来驱动扬声器,并提供例如。用于访问它的 /dev 条目。

    请注意,Linux 内核中已经有一个支持 PCM 的驱动程序,它作为 ALSA 驱动程序进行接口。看看吧:http://lxr.linux.no/linux+v2.6.39/sound/drivers/pcsp/

    实际的硬件接口似乎在 pscp_input.c 中完成:pcspkr_do_sound(...)

    【讨论】:

    • 我会看看这个和源代码,看起来很有趣,谢谢你的信息!
    【解决方案3】:

    在 pc-speakers 的维基百科参考资料中找到 this

    可能有用:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-29
      • 2011-05-25
      • 2016-04-02
      相关资源
      最近更新 更多