mpg123和Ruby; “无法设置终端属性”

时间:2017-01-29 12:01:44

标签: ruby

我正在以小程序播放本地存储在计算机上的声音文件。 程序运行良好,然后播放音频我在终端上收到一条消息,说“无法设置终端属性”

我正在使用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

错误消息enter image description here

的图片

1 个答案:

答案 0 :(得分:1)

fork { exec 'mpg123','-q', '9000.mp3' }

这里fork进程的原因是什么?

分叉进程没有终端,mpg123无法设置终端属性来输出它想要输出的内容。

可能关闭它可能会有所帮助:

fork { exec 'mpg123','-q', '9000.mp3', '>/dev/null', '2>&1' }

但是,只是摆脱多余的fork并且你已经完成了。