Использование Javascript для воспроизведения аудиоэлемента (html5) - PullRequest
2 голосов
/ 16 июня 2011

Я пытаюсь выяснить, как запустить воспроизведение аудио из JavaScript. Я получил HTML, который выглядит так:

<div class='audio' >foo
<audio preload='auto' controls src='test.wav'>
<b>Your browser does not support the audio tag.</b>
</audio>
</div>

И я пытаюсь вызвать его с помощью:

$(document).ready(function () {
    $('.audio').each(function(){
        var audio = $(this).find('audio').get();
        $(this).click(function(){
            audio.volume = 100;
            alert('1 '+audio);
            audio.play();
            alert('2');
        });
    });
});

оповещение («1» + аудио); работает как положено и сообщает об аудио как HTMLAudioElement. Однако настороже («2»); не вызывается, потому что я получаю сообщение об ошибке «audio.play» не является функцией. Что я могу сделать, чтобы решить эту проблему?

Ответы [ 2 ]

7 голосов
/ 16 июня 2011

Ваш код выглядит идеально.Какую ошибку вы получаете, если «alert.play» не является функцией или «audio.play» не является функцией.

Я думаю,

var audio = $(this).find('audio').get();

возвращает попытку массиваэто

var audio = $(this).find('audio').get(0);
4 голосов
/ 04 декабря 2011

Управление звуком без jQuery с использованием только JavaScript еще проще, если вы присвоите звуковому тегу идентификатор:

<audio id="myAudioTagID" type="audio/mpeg" src="sound.mp3"></audio>

тогда вы можете просто получить элемент и применить .pause (), .start (), stop ():

var audio = document.getElementById("myAudioTagID");
audio.play();
audio.pause();
audio.stop();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...