【问题标题】:How to play an audio file without it opening in a new tab如何在不打开新标签的情况下播放音频文件
【发布时间】:2020-10-02 07:41:25
【问题描述】:

我想在我的所有 WordPress 页面上实现一个音频播放器,因此我需要使用 JS 创建 HTML 元素并从那里操作它。一切正常,除了当我按下播放按钮时,它会将我重定向到带有音频链接的新页面并在那里播放。我想防止这种情况发生,这样我就可以在 WP 页面本身上播放和停止它,并在后台播放音频。

非常感谢任何提示!

function addAudioPlayer() {

  const audioPlayer = document.createElement("a");
  audioPlayer.setAttribute("id", "audioPlayer");
  audioPlayer.href =
    "https://www.hostname.com/wp-content/uploads/2020/09/bird_sound.wav";
  audioPlayer.setAttribute("data-id", "[data-song]");
  audioPlayer.innerHTML = "▶";
  
  Array.prototype.forEach.call(
    document.querySelectorAll("[data-song]"),
    function (song) {

      song.audio = new Audio(song.href);
      
      song.setAttribute("role", "button");
      song.setAttribute("aria-pressed", "false");
    }
  );
  document.addEventListener("click", function (event) {

      if (!event.target.hasAttribute("data-song")) return;

      event.preventDefault();

      if (event.target.getAttribute("aria-pressed") == "true") {
        event.target.audio.pause();
        event.target.setAttribute("aria-pressed", "false");
        return;
      }
      event.target.audio.play();
      event.target.setAttribute("aria-pressed", "true");
    },
    false
  );
  document.body.appendChild(audioPlayer);
}

【问题讨论】:

  • 您是否尝试将新创建的标签的目标属性设置为“_self”?
  • @JaromandaX 谢谢你,这解决了它,但我想保留我的简单音频播放器,没有控件,只有播放按钮,当我使用
  • @RicardoSanchez 我刚刚做了,但似乎不起作用
  • 隐藏控件,制作自己的播放按钮

标签: javascript wordpress audio preventdefault


【解决方案1】:

<div> 
    <audio id="myaudio" src="https://www.hostname.com/wp-content/uploads/2020/09/bird_sound.wav" controls="controls"  preload="auto" hidden="true"></audio>
    <input type="button" onclick="autoPlay()" value="Play"/>
</div>

<script language="javascript" type="text/javascript">
        var myAuto = document.getElementById('myaudio');
        function autoPlay(){
            myAuto.play();
        }
</script>

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
  • 1970-01-01
相关资源
最近更新 更多