【问题标题】:How to make PHP output a sound (beep)?如何让 PHP 输出声音(哔)?
【发布时间】:2010-12-27 13:12:00
【问题描述】:

这段 python 代码的 PHP 版本是什么?

import winsound
winsound.Beep(537, 2000)

【问题讨论】:

    标签: php python beep synthesizer


    【解决方案1】:

    这个适用于标准/内置哔声。 (更像是“doink”的声音)

    也适用于任何平台。

    超级简单,复制粘贴代码。

    function beep()
    {
        fprintf ( STDOUT, "%s", "\x07" );
    }
    
    

    【讨论】:

      【解决方案2】:

      当然,人们用 PHP 编写 GUI 应用程序 - 这就是 wxPHP 的用途。

      安装 mpg321 - 一个小巧的声音应用:

      exec("mpg321 --quiet --gain 10 /path/to/beep.mp3");
      

      【讨论】:

        【解决方案3】:

        我尝试了 Tor Valamo 的建议,但仍然无法播放声音。

        我只会在屏幕上显示 chr(7),但使用时没有声音:

        system('cmd /k go.bat')
        

        如果我使用,我将一无所获:

        exec('cmd /k go.bat')
        

        相反,我使用了以下任何一种:

        exec('start /MIN go.bat')
        exec('cmd.exe /k start /MIN go.bat')
        

        唯一的副作用是 cmd.exe 确实闪烁,因此 /MIN 确保它只闪烁到任务栏。

        【讨论】:

          【解决方案4】:

          php主要用在webservers上,那哔哔有什么用,通过php不能在用户电脑上哔哔,因为php是翻译成html的,没有这个方法。

          如果您想要 Win32 调用,请查看:How do I make Win32 API calls from PHP? 还有Win32 Beep Function

          但是,如果您想在用户浏览器上发出哔声,embed audio into the HTML 本身就更好了。

          编辑:Another method for just the beep

          <?php
            function beep ($int_beeps = 1) {
              for ($i = 0; $i < $int_beeps; $i++): $string_beeps .= "\x07"; endfor;
              isset ($_SERVER['SERVER_PROTOCOL']) ? false : print $string_beeps;
            }
          ?>
          

          当通过浏览器运行时,这不会做任何事情,如果通过 shell 运行,它会发出 $int_beeps 次的哔哔声。这应该适用于 Windows、Unix 等。

          【讨论】:

          • 信不信由你,但使用 PHP 和 GTK+ 甚至可以制作桌面应用程序...
          • 是的,winbinder 应用程序允许使用 php 创建桌面应用程序 :)
          • 我知道,但我使用了“大部分”这个词,我从未见过有人用 PHP 编写桌面应用程序
          • 我认识一个人,如果我没有因为 PHP 狂热而不断抨击他,他可能会...:P
          • 也许他每次访问网络时都需要在服务器上发出哔哔声……就像盖革计数器一样。想一想,这主意还不错:)
          【解决方案5】:

          更新:没关系,我以为你只是想要“哔”声,而不是 TONE。

          旧帖,不答题:

          您需要制作一个 .bat 文件,因此: 打开cmd

          copy con go.bat [Enter]
          @echo off [Enter]
          echo [Ctrl+G] [Enter]
          [Ctrl+Z] [Enter]
          

          这看起来像:

          C:\DEV\test>copy con go.bat
          @echo off
          echo ^G
          ^Z
              1 file(s) copied.
          

          现在您只需通过 exec() 或 system() 或其他方式从 PHP 调用 go.bat。您需要通过 cmd 制作 go.bat,以使 Ctrl+G 字符正确。

          【讨论】:

          • 但还是看不到频率和持续时间,需要使用 Win32 Beep API。
          猜你喜欢
          • 1970-01-01
          • 2010-10-05
          • 2011-05-02
          • 1970-01-01
          • 2018-08-11
          • 1970-01-01
          • 2018-08-30
          • 1970-01-01
          相关资源
          最近更新 更多