5

数時間の間に何百回も実行される Web サイトで何度も実行されるテスト スクリプトを実行しています。たとえば、かなり小さなアパートの別の場所にいるときに警告するために、ruby が大音量の曲/mp3 の再生を開始するようにしたいと考えています。

4

6 に答える 6

11

すべての Mac OSX ユーザー向けのソリューションを見つけました。このブログ投稿のクレジット: http://www.mitchchn.me/2014/os-x-terminal/を見せてくれた:

Mac 端末には というコマンドがありsayます。say期待どおりに機能します。

say "I'm done master"

ターミナルからそれを行います。

ruby スクリプトの内部 (私の場合) は、これを簡単に実装できます。

`say "I'm done master"`

魅力のように機能します。

OK、デフォルトで女性の声の方がいいのですが、これは素晴らしいです。

音声を切り替えるには、[システム環境設定] > [音声入力と音声認識] > [テキスト読み上げ] > [システム音声] に移動します。

ヴィッキーはおそらく最高の響きの女性の声です

編集:そうそう、コンピューターがクラッシュしたときに音を立ててほしかった. ルビーでそれを行うには:

def go(x)
  begin# starts rescue block
    puts "5/#{x} = #{5/x}"
  rescue
    `say "something is wrong, master."`
  end
end

go(0)
#=> ...
于 2014-05-15T14:10:36.897 に答える
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  
于 2012-10-13T22:18:02.983 に答える
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
于 2014-01-23T20:17:07.307 に答える