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 вопроса :) Как поставить автоповтор и как удалить (с возможностью восстановить) музыку (проигрываю несуществующий файл, но хочется более изящное решение).


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