追記
質問の本質的なところはわからないままですが、とりあえずオートプレイ的な機能をviewに書いたJavaScriptで動作させるようにしたところ、本質問のような問題は回避できました。
<script type="text/javascript"> window.onload = init(); function init() { var player = document.getElementById("player"); player.play(); } </script>
単純にWindow.onloadしているので、railsでページを離れる時もviewを読み込んでいるのであればこのscriptも読み込んでオートプレイ状態になるのかなと思う所、そうではなかったのでviewを読み込んでいるわけではないと思うのですが、ならばどこでaudio_tagのautoplayが発動したのかがいまだに疑問です。
しばらく回答をお待ちいたしますので、教えていただける方がいらっしゃたらおねがいします。
-追記以上-
いつもお世話になっております。
この度audio_tagを使い、viewにアクセスすると音楽ファイルが自動で再生するものを作ったのですが
//radio.html.erb <%= audio_tag(@artists.song, :autoplay => true, :controls => true) %>
意図した通りアクセス時には再生されるのですが、アプリ内のメニューから別のページにリンクするときも再生がスタートしてしまいます。
scaffoldで作ったコントローラーにradioというアクションを追加し、あわせてviewも追加してそこにaudio_tagがあります。
##artists_controller ~略 def index @artists = Artist.all end def radio @artists = Artist.all.sample end 略~
ルートは
Rails.application.routes.draw do resources :stages devise_for :users resources :artists do collection do get 'a_show' get 'radio' end end get 'xxx/index' root 'xxx#index' # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html end
このようになっています。
radio.html.erbを離れる時もartists_controllerの def radio を踏んだりするのでしょうか? どうすればアクセス時だけのオート再生になるのでしょうか。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。