Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/75: Рейтинг темы: голосов - 75, средняя оценка - 4.87
(ノಠ益ಠ)ノ彡┻━┻
 Аватар для N3stY
152 / 152 / 78
Регистрация: 05.06.2014
Сообщений: 710
Записей в блоге: 2

Реализовать плейлист для HTML тега <audio>

31.08.2014, 11:18. Показов 16323. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача состоит в следующем, реализовать плейлист для тега <audio> с запуском по клику по файлу и тд.
Что то на подобии плеера ВКонтакте
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.08.2014, 11:18
Ответы с готовыми решениями:

Остановить музыку тега audio ( HTML 5 )
Как через JavaScript остановить музыку, которая играет через тег &lt;audio&gt;?

Реализовать плейлист радиостанций для AxWindowsMediaPlayer
Всем доброе время суток. Есть программа радио онлайн делал давно и давно не слушал вот решил недавно послушать. Но некоторые (URL)...

Стилизация тега audio
Здравствуйте. Подскажите, есть тег &lt;audio&gt; &lt;audio controls&gt; &lt;source src=&quot;my_audio.mp3&quot; type=&quot;audio/mpeg&quot;&gt; ...

20
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
31.08.2014, 12:14
N3stY,

Создайте список, в котором будут храниться названия всех песен, так же для каждого LI пропишите атрибут
data-src, там пропишите ссылки на аудио. Далее создайте свои контроллеры : play/pause/stop, пусть текущее аудио находится в переменной currentAudio, с ней проводите все манипуляции, весь список храните в массиве ( так можно будет реализовать кнопки след/пред трeк )

И все, по клику на список доставайте атрибут data-src и вставляйте его в тег audio
1
(ノಠ益ಠ)ノ彡┻━┻
 Аватар для N3stY
152 / 152 / 78
Регистрация: 05.06.2014
Сообщений: 710
Записей в блоге: 2
31.08.2014, 12:46  [ТС]
Thisman, и окончанию одного начнет играть другой?
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
31.08.2014, 14:45
Лучший ответ Сообщение было отмечено N3stY как решение

Решение

N3stY, есть событие окончания трека, при нем запускаешь новый
1
(ノಠ益ಠ)ノ彡┻━┻
 Аватар для N3stY
152 / 152 / 78
Регистрация: 05.06.2014
Сообщений: 710
Записей в блоге: 2
01.09.2014, 08:11  [ТС]
Thisman, Большое спасибо, а то уж мозги начинали кипеть, не знал в каком направлении рыть
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
02.09.2014, 11:25
Thisman, Вы не могли бы чуть более подробно об использовании data-src с <audio> с примером кода? (Пытался я гуглить, но ничего не понял.)
0
(ノಠ益ಠ)ノ彡┻━┻
 Аватар для N3stY
152 / 152 / 78
Регистрация: 05.06.2014
Сообщений: 710
Записей в блоге: 2
02.09.2014, 15:10  [ТС]
Опан,

Что то типа этого:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
$(function() { 
        // Setup the player to autoplay the next track
        var a = audiojs.createAll({
          trackEnded: function() {
            var next = $('ol li.playing').next();
            if (!next.length) next = $('ol li').first();
            next.addClass('playing').siblings().removeClass('playing');
            audio.load($('a', next).attr('data-src'));
            audio.play();
          }
        });
        
        // Load in the first track
        var audio = a[0];
            first = $('ol a').attr('data-src');
        $('ol li').first().addClass('playing');
        audio.load(first);
 
        // Load in a track on click
        $('ol li').click(function(e) {
          e.preventDefault();
          $(this).addClass('playing').siblings().removeClass('playing');
          audio.load($('a', this).attr('data-src'));
          audio.play();
        });
        // Keyboard shortcuts
        $(document).keydown(function(e) {
          var unicode = e.charCode ? e.charCode : e.keyCode;
             // right arrow
          if (unicode == 39) {
            var next = $('li.playing').next();
            if (!next.length) next = $('ol li').first();
            next.click();
            // back arrow
          } else if (unicode == 37) {
            var prev = $('li.playing').prev();
            if (!prev.length) prev = $('ol li').last();
            prev.click();
            // spacebar
          } else if (unicode == 32) {
            audio.playPause();
          }
        })
      });
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
03.09.2014, 14:00
Опан, ну,любому тегу можно приписать любой "свой" атрибут.
Поэтому можно делать вот так вот:

HTML5
1
2
3
4
5
6
7
<ul>
<li><span data-src="track1.mp3">трек №1</span></li>
<li><span data-src="track2.mp3">трек №2</span></li>
<li><span data-src="track3.mp3">трек №3</span></li>
<li><span data-src="track4.mp3">трек №4</span></li>
<audio src=""/>
</ul>
JavaScript
1
2
3
4
5
6
7
var audio = $("audio")[0];
//Вешаем обработчик
$.each($("li"),function (i,el) {
    el.onlick = function() {
         audio.src = $(el).atrr("data-src");
    }
})
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
04.09.2014, 12:24
У меня почему-то не работает. Такое ощущение, что не хватает какой-то библиотеки.
Ещё такое - редактору notepad++ видится незнакомым атрибут data-src, (подсвечивается чёрным цветом) а вот если без тире - datasrc - признаёт знакомым. (подсвечивается красным)
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
04.09.2014, 12:49
Опан, я использовал JQ, возможно ее стоит подключить, на счет тире, без разницы должно работать и с тире
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
04.09.2014, 13:24
JQ у меня подключено, но может неправильно или у меня неправильная версия jQuery v1.7.1?
JavaScript
1
<script src="jquery.js"></script>
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
04.09.2014, 13:36
Опан, использовал 2.1.1 кажется

Добавлено через 56 секунд
Цитата Сообщение от Thisman Посмотреть сообщение
audio.src = $(el).atrr("data-src");
заметил опечатку, там свойство attr, исправьте и должно работать
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
04.09.2014, 13:52
Ничего не изменилось. Я потом даже под этой строкой вставил audio.play();, не помогло.

Добавлено через 4 минуты
Буду искать версию 2.1.1
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
04.09.2014, 13:53
Цитата Сообщение от Thisman Посмотреть сообщение
onlick

замени еще на onclick
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
04.09.2014, 15:47
Не помогло. И версию тоже обновил.
Ещё я заметил, что в обработчике нигде не используется переменная i.
А в общем, оказывается можно этот алгоритм реализовать без jquery - изменил data-src на id и вот что получилось:
HTML5
1
2
3
4
5
6
7
8
<audio id=audio></audio>
 
<ul>
<li><span id="track1.mp3">трек №1</span></li>
<li><span id="track2.mp3">трек №2</span></li>
<li><span id="track3.mp3">трек №3</span></li>
<li><span id="track4.mp3">трек №4</span></li>
</ul>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
<script>
var audio = document.getElementById("audio");
var all_span = document.getElementsByTagName("span");
 
for(i=0;i<all_span.length;i++){
    all_span[i].onclick=function(){
        audio.src=this.id;
        audio.play();
    }
}
 
</script>
Всё работает.
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
16.09.2014, 21:27
Thisman, я нашёл в и-нете пример, где используется data-src: http://kolber.github.io/audiojs/demos/test6.html но там используется библиотека audio.js. Без неё...
N3stY, оказывается исходный код примера по выше указанной ссылке эдентичен Вашему коду в седьмом посту этой темы. И этот пример подходит для решения Вашей задачи.
0
(ノಠ益ಠ)ノ彡┻━┻
 Аватар для N3stY
152 / 152 / 78
Регистрация: 05.06.2014
Сообщений: 710
Записей в блоге: 2
16.09.2014, 22:51  [ТС]
Опан, спасибо, я уже разобрался с этим, осталось найти нормальный способ заставить плеер играть при переходах по страницам (наподобии вк), но это уже совсем другая история
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
16.09.2014, 23:02
Похоже, что на вк переход по страницам делается путём обновления <frame> или <iframe>, или чего-то в этом роде, а плеер находится на основной странице. Так что, на его работу это не влияет.
0
(ノಠ益ಠ)ノ彡┻━┻
 Аватар для N3stY
152 / 152 / 78
Регистрация: 05.06.2014
Сообщений: 710
Записей в блоге: 2
16.09.2014, 23:19  [ТС]
Опан, нет, там не iframe, это AJAX. Мне данный метод не подходит, тк. я использую готовую CMS (да это никуда не годится, но не было времени писать своё) и там используется шаблонизатор не позволяющий использовать AJAX навигацию. Возможно как только переведу все скрипты на свою cms, тогда и ajax навигацию сделаю.
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
16.09.2014, 23:34
Всё равно попробуйте поместить плеер в шаблоне основной страницы. В cms DLE, на пример, этот шаблон находится в файле main.tpl (хотя я так ещё не пробовал).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.09.2014, 23:34
Помогаю со студенческими работами здесь

Стилизация тега audio
Всем привет) Подскажите пожалуйста плагин для стилизации аудио-плеера) Я пробовал использовать mediaelementjs, но он наверное большой...

Обработка тега <audio>
Доброго времени суток! У меня на странице есть несколько тегов &lt;audio&gt;. Когда запускаешь один из них, а за ним следом еще один, то другой...

CSS модификаторы тега <audio>
Здравствуйте. Я пишу курсовую работу в универе, простенький сайт-набор страничек. Мне необходимо стилизовать аудиоплеер, организованный с...

Звуковое уведомление на сайте с помощью тега audio
Здравствуйте. На сайте есть уведомления, появляются автоматически подгружаясь ajax-ом в див элемент в таком виде: ...

Запуск проигрывания аудиозаписи из тега audio программным путем на мобильных брузерах
Здравствуйте. У меня такой вопрос: можно ли, и если да, то как, программным путем запустить проигрывание аудиозаписи из тега audio? Код,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru