2016-03-23 19 views
0

ステレオシステムに接続されているがクライアント側の要求に応じてサーバーマシン上で音楽ファイルを再生したい。クライアントの要求に応じてRailsサーバーで音を再生

クライアントはURLを介してWebアプリケーションを開き、再生をクリックしてサーバマシンでサウンドを再生します。 (ストリームにしたくない)

現時点では、サウンドファイルはコントローラと同じディレクトリにありますが、ブラウザから再生ボタンを押しても何も起きません。

これは非常に簡単かもしれませんが、初心者では私はホスト上でシステムコマンドを実行するのが難しいと感じています。私はプレイボタンからのリクエストを処理する定義されたコントローラを持っている3000 enter image description here

これまでのところ私はローカルホスト上でこのクライアント・インターフェースを持っています。

クラスWelcomeController < ApplicationControllerに DEFインデックス
エンド

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

エンド

routes.rbを

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

レーキルートの出力

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 %> 
+0

gemfileに 'byebug'を追加して、シェルレスポンスを変数'に保存すると、html5プレーヤーを使うことができます:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_HTML5_audio_and_video – toddmetheny

+1

' res = \ 'mplayer myfile.mp3 \' 'そしてその行の後ろに' byebug'を置きます。次に、サーバーを再度実行し、リンクをクリックします。あなたはブレークポイントを打ち、シェルコマンドで何が起こっているのかをデバッグできるはずです –

+0

@toddmethenyクライアント側でオーディオファイルを再生したくないので、RailsサーバがホストされているLinuxマシンで再生したい。 –

答えて

0

私はLinuxホストでmplayerのパッケージがありませんでしたし、私のサウンドファイルへのパスが間違っていました。

sudo apt-get install mplayer 

そして私は、ファイルが実際にファイルがレールアプリのルートディレクトリで検索されていた、そこから根ざしするだろうと考え、コントローラのディレクトリにファイルを置きました。

関連する問題