我正在以小程序播放本地存储在计算机上的声音文件。 程序运行良好,然后播放音频我在终端上收到一条消息,说“无法设置终端属性”。
我正在使用mpg123和Ruby。 希望你们喜欢DBZ:)
play_audio = fork{ exec 'mpg123','-q', '9000.mp3' }
h = { "Goku" => 9001, "Yamcha" => 4029, "Krillin" => 4034, "Piccollo" => 6701 }
puts "Vegeta, what does scouter say about his power level?\n\n"
h.each do |key, value|
if value > 9000
puts "#{key.upcase}'S POWER LEVEL IS OVER 9000!!!"
play_audio
else
puts "#{key}'s power level is #{value}"
end
end
的图片
答案 0 :(得分:1)
fork { exec 'mpg123','-q', '9000.mp3' }
这里fork
进程的原因是什么?
分叉进程没有终端,mpg123
无法设置终端属性来输出它想要输出的内容。
可能关闭它可能会有所帮助:
fork { exec 'mpg123','-q', '9000.mp3', '>/dev/null', '2>&1' }
但是,只是摆脱多余的fork
并且你已经完成了。