Jython: сделать простой звуковой сигнал в Windows - PullRequest
7 голосов
/ 02 ноября 2010

Я работаю с Sikuli, который (я думаю) построен на Jython.Я хочу сделать сценарий, который делает небольшой тихий звуковой сигнал, чтобы привлечь внимание пользователя.(Это на Windows.)

Как я могу это сделать?Я вижу, что модуль winsound недоступен в Jython.

(обратите внимание, что я хочу использовать звуковую карту, а не встроенный звуковой сигнал.)

Ответы [ 6 ]

3 голосов
/ 02 ноября 2010

Если это 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)

2 голосов
/ 02 марта 2011

Вы можете выполнить сброс, используя командную строку:

Выполните «copy con beep.txt», введите [ctrl + G] в качестве ввода и затем [ctrl + Z], а затем [Enter] для выхода

Затем запустите «type beep.txt», и вы услышите звуковой сигнал.

Вы можете поместить «type beep.txt» в пакетный файл или использовать Ctrl + G непосредственно в пакетном режиме (что приведет кошибка в командной строке со звуком)

1 голос
/ 09 сентября 2012

Поскольку у нас есть доступ к уровню Java в Sikuli (благодаря Jython), это в основном должно работать:

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

Тест пройден в Windows 7. Вы можете получить подробное объяснение здесь .

0 голосов
/ 28 августа 2015

Так как вы попросили простой скрипт на 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()
0 голосов
/ 13 мая 2014

Если вы запускаете сценарии Sikuli из командной строки, а не через IDE, вы можете просто записать символ BEL в консоль, и он издаст звуковой сигнал.Это также работает через RDP.

Редактировать: в Windows 7, теперь будет звучать звуковая карта, как вы и просили.В Windows XP он подаст звуковой сигнал на внутренний динамик (если имеется).

Например, два следующих звуковых сигнала дважды:

print("\007\007")
0 голосов
/ 14 февраля 2011

Поскольку вы используете Sikuli, вы можете выполнить следующие действия:

Добавить любой медиафайл, например, .mp3, на рабочий стол компьютера с Windows, связать файл с медиапроигрывателем.Захватите изображение и включите:

click (pattern (desktopnoiseicon.png)

alternatley, вы можете выполнить ту же задачу с openApp (C: \ noise.mp3)

Sikuliдает возможность находить многочисленные обходные пути

в SikuluXrc2, вы даже можете указать URL-адрес из своего кода без необходимости установки пути к пакету

...