【发布时间】: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