2016-11-01 2 views
1

Я получаю странное сообщение, когда пытаюсь воспроизвести аудиофайл.myAudio.play() не является функцией

На моем 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() не является funtion».

+0

'var myAudio = $ (" # song ");' - возвращает объект jQueery, а не элемент HTML ... jQueery ничего не знает о «play» ... либо используйте 'var myAudio = document.getElementByID (' song '); '- или, если вы настроены использовать jQueery для такой простой задачи, используйте' var myAudio = $ («# song») [0]; ', так что myAudio имеет один и только тег аудио с этим ID –

+0

спасибо за это. Теперь он говорит мне document.getElementByID не функция! – Paul

+0

из-за моей преднамеренной ошибки - 'document.getElementById' - это настоящая функция, на которую вы смотрите –

ответ

2

Пример решения на основе вашего вопроса:

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%">

Если сломана в будущем проверки изображения и звука для deadlinks.

Смежные вопросы