javascript - 尝试使用 Vue.js 播放 mp3

标签 javascript vue.js html5-audio

目标:

  • 尝试使用具有播放暂停状态的本地文件向我的项目添加背景声音。

  • 加载外部 URL 文件似乎没问题并且播放/暂停正常,但不是本地文件。
    问题:
  • 另外,URL http://....mp3 文件播放而我的本地文件不播放的确切原因是什么?

  • 问题:
  • 网络状态为 Status Code: 206 Partial Content
  • 控制台错误是 Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().

  • HTML:
        <div class="music-player">
            <audio
              ref="audio"
              preload="auto"
              volume="0.1"
              muted
              loop
            >
              <source :src="file" />
            </audio>
            <div @click="toggleSound(file)" class="toggle-sound paused"></div>
          </div>
    
    JS:
        data: () => ({
          ...,
          file: "/public/audio/bg-music.mp3"
        }),
        methods: {
        toggleSound() {
            let audio = this.$refs.audio;
            if (
              audio.paused &&
              document.querySelector(".toggle-sound").classList.contains("paused")
            ) {
              console.log("play it")
              audio.play();
              document.querySelector(".toggle-sound").classList.remove("paused");
            } else {
              console.log("pause it")
              audio.pause();
              document.querySelector(".toggle-sound").classList.add("paused");
            }
          },
        }
    

    最佳答案

    我只是将音频源添加到 audio像下面这样的标签,它起作用了!

    <div class="music-player">
        <audio
          ref="audio"
          src="@/assets/audio/bg-music.ogg"
          preload
          loop
          id="audio"
          muted
        ></audio>
        <div @click="toggleSound()" class="toggle-sound"></div>
      </div>
    

    关于javascript - 尝试使用 Vue.js 播放 mp3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62824950/

    相关文章:

    c# - 通过 ajax 和 .net mvc 编辑表单字段

    javascript - Vue.js - 从 axios 返回数组

    php - 如何使个人资料页面可供用户编辑,我想在编辑后保存这些数据(vue.js + laravel)

    javascript - 加载音频缓冲区并使用音频标签播放它

    javascript - 如何清除/释放音频接触 html5

    javascript - jQuery ajax :error runs even if the response is OK 200

    javascript - .htaccess 忽略对 css/js/images 的请求?

    javascript - 如何将触发 `onclick` 事件的元素的 id 传递给事件处理函数

    javascript - Vue.js如何替换点击按钮的文字

    javascript - 如何制作多个播放按钮?