myAudio.play() 不是函数

myAudio.play() is not a function

我在尝试播放音频文件时收到一条奇怪的消息。

在我的 html 上,我得到了一个声音文件:

<audio id="song" src="song.mp3"></audio>

当我点击图片时:

<img onclick="togglePlay()" src="image.png" width="100%">
                    </div>

我的 JavaScript:

  var myAudio = $("#song");

  var isPlaying = false;
  function togglePlay() {
     if (isPlaying) {
          myAudio.pause();
      } else {
        myAudio.play();
      }
   };
   myAudio.onplaying = function() {
      isPlaying = true;
   };
   myAudio.onpause = function() {
      isPlaying = false;
   };

我没有听到任何声音,并且在控制台上出现警告消息:"myAudio.play() is not a funtion"。

基于您的问题的示例解决方案:

var myAudio = $("#song")[0];

var isPlaying = false;

function togglePlay() {
    if (isPlaying) {
        myAudio.pause();
    } else {
        myAudio.play();
    }
};
myAudio.onplaying = function() {
    isPlaying = true;
};
myAudio.onpause = function() {
    isPlaying = false;
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<audio id="song" src="https://ia801009.us.archive.org/4/items/BeatlesGreatestHits/02%20With%20a%20Little%20Help%20From%20My%20Friends.mp3"></audio>

<img onclick="togglePlay()" src="https://pmcdeadline2.files.wordpress.com/2014/06/the-beatles-1__140613232022.jpg" width="100%">

如果将来损坏,请检查图像和音频是否存在死链接。