【问题标题】:how do I play mp3 file?如何播放 mp3 文件?
【发布时间】:2012-04-11 02:07:03
【问题描述】:

如何在 ruby​​ 中编写一个脚本,在命令行执行时播放 mp3 文件(背景音乐)?

我试过了

run = "mplayer #{"/Users/bhushan/resume/m.mp3"} -ao sdl -vo x11 -framedrop -cache 16384 -cache-min 20/100"
system(run)

但它也不起作用,以上是特定于玩家的。如果用户没有安装 mplayer 怎么办。有没有更好的办法?

【问题讨论】:

  • 当它不起作用时它会说什么?它可以从命令行工作吗?
  • 既然你好像是在Mac上,你为什么用-vo x11
  • 它什么也没说。返回值为最后一条语句的false

标签: ruby mp3 playback background-music


【解决方案1】:

我通常只是这样做

pid = fork{ exec 'mpg123','-q', file }

【讨论】:

  • 在 mac-os-x 上 pid = fork{ exec 'afplay', file }
【解决方案2】:

试试这个方法:这使用鞋子来施展魔法,我希望这就是你所需要的 http://rubylearning.com/blog/2008/05/31/a-teeny-weeny-mp3-player-using-ruby-and-shoes/

#my_mp3player01.rb
Shoes.app do
  button( 'play' ){ @v.play }
  button( 'pause' ){ @v.pause }
  button( 'stop' ){ @v.stop }
  @v = video "C:/rubyprograms/mp3player/ruby.mp3"
end

【讨论】:

    【解决方案3】:

    这是我使用 jruby 和外部 jar 播放它们的方法:https://github.com/rdp/jruby-swing-helpers/blob/master/spec/play_mp3_audio.spec.rb

    【讨论】:

      【解决方案4】:

      您可以编写使用不同播放器的 ruby​​ 代码。

      例如,我使用的一个类:

      https://gist.github.com/2217498

      可以使用 sox 或 vlc 或其他东西,而不是 mplayer。

      在您的示例中,您始终可以扩展您的代码。您可以从 yaml 文件中读取,而不是硬编码 mplayer,您可以动态更改该文件。

      您也可以尝试直接通过 ruby​​-gtk 使用 gstreamer。

      但请记住,ruby 本身不能播放音频文件。

      如果有人能够创建一个纯红宝石播放器,那就太酷了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-29
        • 1970-01-01
        • 2012-08-30
        • 2013-05-28
        • 2010-09-30
        相关资源
        最近更新 更多