Как остановить звук HTML5 при переходе пользователя на новую страницу или при обновлении текущей страницы? - PullRequest
0 голосов
/ 29 сентября 2019

Это код просмотра домашней страницы, который воспроизводит песню, если есть пользователь.Я хочу, чтобы он выгрузил предыдущую песню и начал играть новую.Только на двух страницах есть музыка, которую центральный банк называл Dragonhoard, и домашняя страница.На любой другой странице не должно быть никакого звука, независимо от того, воспроизводилась ли предыдущая песня.

В настоящее время происходит то, что звук аудиоплеера не выгружается до того, как предыдущий пользователь перешел к новойссылка, которая приводит к одновременному воспроизведению нескольких звуков.

Я хотел бы знать, как это сделать в Ruby on Rails 5.2, когда страница обновляется или при нажатии на ссылку.

<% provide(:h1, "Welcome to Duelingpets #{homepageAlerts}") %>
<% if current_user %>
   <!-- Before this playMusicLoop command there -->
   <!-- needs to be a way to stop the previous -->
   <!-- audio -->
   <!-- Unloading audio starts here -->
   <!-- Plays the new sound below -->
   <p class="centerpagecontent"><%= playMusicLoop("Homepage", nil) %></p>
   <div class="pageformat">
      <% if current_user.userinfo.mute_on %>
         <p><%= button_to 'Unmute music', muteAudio_path(:pageType => "Home"), $
      <% else %>
         <p><%= button_to 'Mute music', muteAudio_path(:pageType => "Home"), me$
      <% end %>
   </div>
<% end %>

Эта страница взята из моего текущего файла помощника пользователя и воспроизводит определенную музыку в зависимости от страницы, на которой сейчас находится пользователь.Этот код прекрасно работает в его текущей настройке, но мне нужна команда для выгрузки аудио, прежде чем запускать playMusicLoop.

def playMusicLoop(type, user)
         sound = ""
         control = Webcontrol.find_by_id(1)
         if(!current_user.userinfo.mute_on)
            if(current_user.userinfo.audiobrowser == "ogg")
               if(type == "Maintenance")
                  sound = (audio_tag(getMusicOrVideo("Maintenance", control.mai$
               elsif(type == "Missing")
                  sound = (audio_tag(getMusicOrVideo("Missing", control.missing$
               elsif(type == "Hoard")
                  dragonhoard = Dragonhoard.find_by_id(1)
                  sound = (audio_tag(getMusicOrVideo("Sound", dragonhoard), :lo$
               elsif(type == "User")
                  if(user.userinfo.music_on)
                     sound = (audio_tag(getMusicOrVideo("User", user), :loop =>$
                  end
               elsif(type == "Homepage")
                  criticalMode = Maintenancemode.find_by_id(2)
...