Python Jython:在Windows上发出简单的嘟嘟声
我和Sikuli合作,这(我认为)是建立在Jython的基础上的。我想做一个脚本,做一个小的轻轻的嘟嘟声,以吸引用户的注意。(这是在Windows上。) 我该怎么做?我发现Jython上没有Python Jython:在Windows上发出简单的嘟嘟声,python,windows,audio,jython,sikuli,Python,Windows,Audio,Jython,Sikuli,我和Sikuli合作,这(我认为)是建立在Jython的基础上的。我想做一个脚本,做一个小的轻轻的嘟嘟声,以吸引用户的注意。(这是在Windows上。) 我该怎么做?我发现Jython上没有winsound模块 (请注意,我想使用声卡,而不是内置的寻呼机。)如果是Jython,那么只需使用播放声音的任何Java类即可。有很多。 from java import net from java.applet.Applet import newAudioClip from java import io
winsound
模块
(请注意,我想使用声卡,而不是内置的寻呼机。)如果是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() 从java导入网 从java.applet.applet导入新音频剪辑 从java导入io url=io.File(“文件名”).toURL() 音频=新音频剪辑(url) 音频播放
导入sun.audio
导入java.io
inputStream=java.io.FileInputStream(“test.wav”)
audioStream=sun.audio.audioStream(inputStream)
sun.audio.AudioPlayer.player.start(音频流)
由于您使用的是Sikuli,因此可以执行以下操作
在windows计算机的桌面上添加任何媒体文件,如any.mp3,将该文件与媒体播放器关联。捕获图像并包括:
单击(模式(desktopnoiseicon.png)
您可以使用openApp执行相同的任务(C:\noise.mp3)
Sikuli能够找到许多变通方法
在SikuluXrc2中,您甚至可以从代码中指向URL,而无需设置捆绑路径您可以使用命令行执行以下操作: 执行“复制con beep.txt” 输入[ctrl+G],然后输入[ctrl+Z],然后输入[Enter]退出 然后跑 “键入beep.txt” 你会听到嘟嘟声
您可以将“type beep.txt”放在批处理文件中,也可以直接在批处理中使用Ctrl+G(这会在命令行中产生错误,并伴有声音)因为我们可以访问Sikuli中的Java级别(感谢Jython),这应该主要起作用:
import java.awt.Toolkit # only once per script
java.awt.Toolkit.getDefaultToolkit().beep()
测试在Windows7上通过。
您可能会得到一些详细的解释。如果您从命令行而不是通过IDE运行Sikuli脚本,那么您只需将
BEL
字符写入控制台,它就会发出嘟嘟声。这也可以通过RDP工作
编辑:在Windows 7上,这将按照您的要求通过声卡发出嘟嘟声。在Windows XP上,它将向内部扬声器发出嘟嘟声(如果存在)
例如,以下两次蜂鸣音:
print("\007\007")
由于您要求提供一个简单的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()
仅供参考,在Windows中引起用户注意的标准方法是刷新任务栏;播放声音很烦人。谢谢。客户要求发出嘟嘟声。声音一点也不简单,无论是O/s还是语言环境。在Jython中,您使用的是Java环境,因此您应该在这里查找任何异常的内容。请参见只使用python的解析:有没有办法不用处理文件就可以做到这一点?比如,做正弦波之类的?我对Java完全一无所知。当然,循环:振幅*(math.sin(frequency*2*math.pi*count)产生一个以计数为时间步长的正弦波。当你迭代时,保存结果,你将得到一个基本的原始声音数据数组。你想怎么做就怎么做。该死,它说
不能导入name newAudioClip
。可能它不包括在Sikuli中。你知道怎么做吗?嗯,试着给第二个例子一个镜头。让我知道如果行得通的话。
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()