Jython:在Windows上发出简单的哔哔声

时间:2010-11-02 14:38:06

标签: python windows audio jython sikuli

我正在和Sikuli合作,我认为它是建立在Jython之上的。我想制作一个脚本,发出轻微的哔哔声以吸引用户的注意力。 (这是在Windows上。)

我该怎么做?我看到Jython上没有winsound模块。

(请注意,我想使用声卡,而不是内置的蜂鸣器。)

6 个答案:

答案 0 :(得分:3)

如果是Jython,那么只需使用任何播放声音的Java类。它们有很多。

from java import net
from java.applet.Applet import newAudioClip
from java import io
url = io.File("fileName").toURL()
audio = newAudioClip(url)
audio.play()

import sun.audio
import java.io
inputStream = java.io.FileInputStream("test.wav")
audioStream = sun.audio.AudioStream(inputStream)
sun.audio.AudioPlayer.player.start(audioStream)

答案 1 :(得分:2)

您可以使用命令行进行fllowing:

执行“copy con beep.txt” 键入[ctrl + G]作为输入,然后按[ctrl + Z],然后按[Enter]退出

然后跑 “输入beep.txt” 你会听到一声哔哔声。

您可以在批处理文件中放置“type beep.txt”或直接批量使用Ctrl + G(这会在声音命令行中产生错误)

答案 2 :(得分:1)

由于我们可以访问Sikuli中的Java级别(感谢Jython),这应该主要起作用:

import java.awt.Toolkit # only once per script
java.awt.Toolkit.getDefaultToolkit().beep()

测试在Windows 7上传递。 您可能会得到一些详细的解释here

答案 3 :(得分:0)

由于您使用的是Sikuli,您可以进行以下操作。

在Windows计算机的桌面上添加任何媒体文件,例如任何.mp3,将文件定位到媒体播放器。捕获图像并包括:

点击(图案(desktopnoiseicon.png)

alternatley你可以用openApp(C:\ noise.mp3)执行相同的任务

Sikuli能够找到许多变通方法

在SikuluXrc2中,您甚至可以从代码中指向一个URL,而无需设置包路径

答案 4 :(得分:0)

如果您从命令行而不是通过IDE运行Sikuli脚本,那么您只需将BEL字符写入控制台即可发出哔声。这也适用于RDP。

Windows 7上的

编辑,现在可以通过声卡发出蜂鸣声,正如您所要求的那样。在Windows XP上,它会发出内部扬声器(如果有)的声音。

E.g。以下发出两次哔声:

print("\007\007")

答案 5 :(得分:0)

因为你要求一个简单的Sikuli / Python脚本,我在Windows 10上自己测试了这个:

import java.awt.Toolkit 

class Main():
    def __init__(self):
        # Ask user input. 
        nValue = input('Please enter a value:')
        # Run the beep definition. 
        self.beepAway(nValue)

    def beepAway(self, nValue):
        # Beep nValue number of times, after each beep wait 2 seconds. 
        for i in range(int(nValue)):
            java.awt.Toolkit.getDefaultToolkit().beep()
            wait(2)

# Run class 
Main()