Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Audio в DOM (https://javascript.ru/forum/events/25412-audio-v-dom.html)

function 04.02.2012 20:43

Audio в DOM
 
Подскажите, пожалуйста, как получить доступ к src в source.


<html>

<body>

<audio name="music1">

<source src="http://sait-raznoe.do.am/pr/4/music1.mp3" name="music2">

</audio>



<script>


alert(1);

alert(document.music1.music2.src);

alert(document.audio.source.src);

// И т.д.

</script>

1


</body>

</html>

Nekromancer 04.02.2012 20:47

А по человечески это никак нельзя было сделать?

<!DOCTYPE html>
<html>

<body>

<audio id="music1">

<source src="http://sait-raznoe.do.am/pr/4/music1.mp3" name="music2">

</audio>
<script>

var m = document.getElementById('music1'),
sources = m.getElementsByTagName('source');
alert(sources[0].src);
</script>

</body>

</html>

function 04.02.2012 20:52

Спасибо. Просто я в DOM и getElementById плохо разбираюсь.

function 04.02.2012 21:33

И ещё такой вопрос. Я с помощью JS меняю ссылку к музыке, но сама музыка не меняется. Вот сами посмотрите (в хроме).

Nekromancer 04.02.2012 21:40

Что бы загрузить другой файл, нужно вызвать метод - load('file.name');

function 04.02.2012 21:50

А можно в примерах?

Nekromancer 04.02.2012 21:53

var a = new Audio();
a.src = 'mymusic.mp3';
a.load();
a.addEvenetListener('canplaythrough', function(){
a.play();
}, false);


Немного ошибся, всё таки надо поменять просто src, а потом вызвать load.

function 04.02.2012 22:02

Эм... Всё равно не понял. Дайте ссылку на статейку.

Nekromancer 04.02.2012 22:12

http://msdn.microsoft.com/ru-ru/libr...=vs.85%29.aspx
http://www.position-absolute.com/art...-manipulation/

function 05.02.2012 09:24

Всё. Понял. Сделал так:
a.src = //новый путь;
a.load();
a.play();


И напоследок ещё 2 вопроса :) Как поставить автоповтор и как удалить (с возможностью восстановить) музыку (проигрываю несуществующий файл, но хочется более изящное решение).

Magneto 05.02.2012 12:27

Авто повтор.
var audio = new Audio();
    audio.src = 'http://dl.dropbox.com/u/6001712/demo/alien/sound/warningwarheadpathblocked2.ogg';
    audio.play();
    audio.onended = function() {audio.play();};

Как удалить? Возможно стоит просто остановить.
audio.pause();
audio.currentTime = 0;

function 05.02.2012 15:57

Цитата:

Сообщение от Magneto
Как удалить? Возможно стоит просто остановить.

Ну можно и так. Ещё раз всем спасибо, тему можно закрывать.

function 05.02.2012 16:29

Хотя ещё нет :) До окончания загрузки музыка не играет (что естественно), но в теге audio это как-то обходилось. А ещё "onended" в хроме неработает.

Magneto 05.02.2012 19:10

Цитата:

Сообщение от function
До окончания загрузки музыка не играет (что естественно), но в теге audio это как-то обходилось.

<audio id="audio"></audio>

<script>
var audio = document.getElementById('audio');
    audio.src = 'http://dl.dropbox.com/u/6001712/aimp/Axwell%20%26%20Sebastian%20Ingrosso%20-%20Together.ogg';
    audio.play();
</script>


Цитата:

Сообщение от function
А ещё "onended" в хроме неработает.

audio.addEventListener('ended', function(){
  audio.play();
}, false);

function 05.02.2012 20:06

Ну я туплю похоже :) Вообщем, всё работает, всем спасибо, закрывайте тему.


Часовой пояс GMT +3, время: 00:01.