【问题标题】:Playing sound on Rails server on request of Client应客户要求在 Rails 服务器上播放声音
【发布时间】:2016-07-10 19:32:14
【问题描述】:

我想在连接到立体声系统但应客户端请求的服务器机器上播放音乐文件。

客户端通过URL打开web应用,点击播放,在服务器机器上播放声音。 (我不想直播)

目前我的声音文件与控制器位于同一目录中,但是当我从浏览器中按下播放按钮时,没有任何反应。

这可能非常简单,但作为初学者,我发现很难在主机上执行系统命令。

到目前为止,我在 localhost:3000 上有这个客户端界面

我定义了一个控制器来处理来自播放按钮的请求。

类 WelcomeController 结束

def play
  `mplayer myfile.mp3`
  head :ok
end

结束

Routes.rb

Rails.application.routes.draw do
  root 'welcome#index'
  get "/play" => "welcome#play"
end

Rake 路由的输出

Prefix Verb URI Pattern     Controller#Action
root GET  /               welcome#index
play GET  /play(.:format) welcome#play

Index.html.erb

<h1>Play it!</h1>
<%= link_to "Play", play_path, remote: true %>

【问题讨论】:

  • 您可以使用html5播放器:developer.mozilla.org/en-US/docs/Web/Guide/HTML/…
  • byebug 添加到您的Gemfile,将shell 响应保存到变量res = `mplayer myfile.mp3` 并在该行之后放置byebug。然后再次运行您的服务器并单击链接。你应该打一个断点,并能够调试你的 shell 命令发生了什么
  • @toddmetheny 我不想在客户端播放音频文件,我希望它在托管 Rails 服务器的 Linux 机器上播放。
  • 您仍然可以在服务器端托管实际文件...您希望最终用户听到它,对吗?
  • 谢谢你们,我想通了。我缺少一个包,声音文件的路径不正确。

标签: ruby-on-rails ruby


【解决方案1】:

我的 linux 主机中缺少 mplayer 包,并且我的声音文件的路径不正确。

sudo apt-get install mplayer

我将文件放在控制器的目录中,认为文件将从那里开始,实际上是在 rails 应用程序的根目录中搜索文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多