我正在运行一个测试脚本,该脚本在一个网站上反复运行,在几个小时的过程中运行了数百次。我想让红宝石开始播放一首响亮的歌曲/ mp3,以便在我在我相当小的公寓的另一部分时提醒我。
答案 0 :(得分:8)
我找到了所有Mac OSX用户的解决方案。此博客文章的致谢:http://www.mitchchn.me/2014/os-x-terminal/向我展示:
Mac终端有一个名为say
的命令。 say
函数完全像人们希望的那样:
say "I'm done master"
从终端做到了。
在ruby脚本中(在我的例子中),这很容易实现。
`say "I'm done master"`
就像一个魅力。
好吧,默认情况下,我认为它是女性的声音,但这很棒。
要切换语音,请转到“系统偏好设置”>听写和演讲>文字转语音>系统语音
Vicki可能是最好听的女声
编辑:哦,是的,我希望计算机在崩溃时发出噪音。要在ruby中做到这一点:
def go(x)
begin# starts rescue block
puts "5/#{x} = #{5/x}"
rescue
`say "something is wrong, master."`
end
end
go(0)
#=> ...
答案 1 :(得分:5)
同样在Mac上有afplay
程序,因此可以执行以下操作:
sleep 180 # sleep 3 minutes
`afplay my_song.mp3`
答案 2 :(得分:4)
如果你想在异常后播放一些音乐,只需将你的语句包装在begin rescue
块中,当你发现异常时,运行类似的东西(在* nix上):
pid = fork{ exec 'mpg123','-q', file }
或者如果你在Windows上:
require 'win32ole'
player = WIN32OLE.new('WMPlayer.OCX')
player.OpenPlayer(file)
所以看起来应该像
def methodThatFails
begin
# Your code here
rescue
pid = fork{ exec 'mpg123','-q', 'nevergonnagiveyouup.mp3' }
end
end
答案 3 :(得分:2)
对于Windows用户:使用gem win32-sound,没有mp3支持,但.wav
# gem install win32-sound
require 'win32/sound'
include Win32
Sound.play("SystemAsterisk", Sound::ALIAS) # play system asterisk sound
Sound.beep(600,200) # play a beep 600 hertz for 200 milliseconds
Sound.play("trompet.wav") # play a file from disk
答案 4 :(得分:1)
puts "\a"
如果您正在开发命令行应用程序,并且需要简单的终端提示音,请使用以下纯ruby,没有库,仅使用ansi转义代码。应该可以在本机终端上运行(与ansi兼容,例如mac终端gnome / kde终端,term2,ssh会话,tmux等。不确定Windows终端-应该支持,因为这是众所周知的ansi序列。听起来就像什么时候您在输入的开头按DELETE或DOWN箭头。希望对您有帮助
答案 5 :(得分:0)
当您的Ruby代码出现异常时,您可以使用gem exception_alarm
播放mp3警报文件。
require 'exception_alarm'
alarm do
# your code...
raise 'play alarm sound'
end