Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
8 / 5 / 4
Регистрация: 18.02.2014
Сообщений: 409
1

Остановка текущего трека при запуске нового как осуществить

05.03.2014, 18:55. Показов 3890. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ у меня есть код php который выводит все mp3 файлы из папки на страницу в виде списка но проблема в том когда я запускаю новый файл старый продолжает играть как это исправить

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php //отсеивание
    $dir = "MP3 PLAYER/";   //задаём имя директории
    if(is_dir($dir)) {   //проверяем наличие директории
         echo $dir.'<br>'; 
         $files = scandir($dir);    //сканируем (получаем массив файлов)
         array_shift($files); // удаляем из массива '.'
         array_shift($files); // удаляем из массива '..'
         for($i=0; $i<sizeof($files); $i++) echo '<center>'.$files[$i].'<br>
<object id="audioplayer" type="application/x-shockwave-flash" data="/player.swf" width="600" height="30">
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
<param name="menu" value="true" /> 
<param name="audio" value="'.$dir.$files[$i].'" />
<param name="flashvars" value="comment=$ENTRY_TITLE$&st=/audio189-339.txt&file='.$dir.$files[$i].'" />
</object>
</center><br>';
} 
    else echo $dir.' -такой директории нет;<br>';
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2014, 18:55
Ответы с готовыми решениями:

Остановка музыки при включении второго трека
Здравствуйте. Как можно сделать, что бы при нажатии на другой трек первый трек бы отключался....

Останавливать воспроизведение предыдущего трека при запуске следующего
Здравствуйте . Вставляю 2 аудио : &lt;h3&gt;&lt;font color=&quot;red&quot;&gt;Blue October – Say It&lt;/font&gt;&lt;/h3&gt;...

Проигрывание следующего трека в media по окончании текущего
Доброе время суток. Подскажите пожалуйста, как сделать, чтобы при окончании мелодии, сразу начала...

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

23
27 / 27 / 9
Регистрация: 30.04.2012
Сообщений: 132
05.03.2014, 21:46 2
Лучший ответ Сообщение было отмечено outZoNe как решение

Решение

А почему JS?
Здесь вроде как флеш нужен.
Js в html5 может музыку, кстати, проигрывать, и там удобно ставить паузу и т.п. И в некоторых браузерах (как минимум в хроме) есть встроенный аудиопроигрыватель.
1
8 / 5 / 4
Регистрация: 18.02.2014
Сообщений: 409
06.03.2014, 17:28  [ТС] 3
nokados, простите а можно поподробнее рассказать как мне это сделать кстати я использую flash проигрыватель на сайте но я не знаю как сделать что бы была пауза они оба одновременно играют а как это исправить я не знаю
0
27 / 27 / 9
Регистрация: 30.04.2012
Сообщений: 132
06.03.2014, 19:31 4
Лучший ответ Сообщение было отмечено outZoNe как решение

Решение

Я знаю, как сделать через html5 - вот.
Через flash точно не знаю. Возможно стоит погуглить "пауза музыки actionscript". Ну или дайте код проигрывателя - авось что-нибудь там найдем.
1
8 / 5 / 4
Регистрация: 18.02.2014
Сообщений: 409
06.03.2014, 20:05  [ТС] 5
nokados, Ну я не совсем понял что за код проигрывателя но если вы о плеере то я сделал его на uppod просто там наприсовал какой нужен скачал и подключил к сайту и все смысле в том что у меня в папке лежит куча mp3 файлов а этот код выводит их на страницу в виде списка но проблема в том что когда играет один трек и я включаю другой то они оба играют одновременно и я не знаю как это убрать.

Добавлено через 5 минут
Я сделал как вы посоветывали на html5 но результат получился тот же

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php //отсеивание
    $dir = "MP3 PLAYER/";   //задаём имя директории
    if(is_dir($dir)) {   //проверяем наличие директории
         echo $dir.'<br>'; 
         $files = scandir($dir);    //сканируем (получаем массив файлов)
         array_shift($files); // удаляем из массива '.'
         array_shift($files); // удаляем из массива '..'
         for($i=0; $i<sizeof($files); $i++) echo '<audio src="'.$dir.$files[$i].'"controls></audio>';
 
} 
    else echo $dir.' -такой директории нет;<br>';
?>
0
27 / 27 / 9
Регистрация: 30.04.2012
Сообщений: 132
06.03.2014, 20:32 6
Нужно ставить на паузу запущенный файл.
Чтобы отслеживать все мелодии добавим им класс в выводе:
PHP
1
for($i=0; $i<sizeof($files); $i++) echo '<audio class="music" src="'.$dir.$files[$i].'"controls></audio>';
Потом на js отслеживаем запуск нового файла. Если запустили новый, то ставим предыдущий на паузу;
Javascript
1
2
3
4
5
6
7
8
9
10
11
var playedMusic= null,
     music=document.getElementByClassName('music');
for (var k in music)
{
    music[k].onplay=function()
    {
        if(playedMusic!==null)
            playedMusic.pause();
        playedMusic=this;
    }
}
1
8 / 5 / 4
Регистрация: 18.02.2014
Сообщений: 409
06.03.2014, 20:45  [ТС] 7
Опять тот же эффект или это я тупой))) вот я так сделал:
Остановка текущего трека при запуске нового как осуществить
0
27 / 27 / 9
Регистрация: 30.04.2012
Сообщений: 132
06.03.2014, 20:58 8
а если обернуть весь js код в windows.onload=function(){/*сюда код*/} ?

Добавлено через 6 минут
А все я нашел ошибку. Должно быть не getElementByClassName
а getElementsByClassName
1
8 / 5 / 4
Регистрация: 18.02.2014
Сообщений: 409
06.03.2014, 21:14  [ТС] 9
nokados, Да я сделал как вы сказали:
Остановка текущего трека при запуске нового как осуществить
, но все равно то же самое я вот думаю может мне надо задавать как то каждому плееру свой id но я не знаю как это сделать так как у меня все файлы из папке находятся в одном массиве а не как отдельные ссылки а в js я очень очень очень плох(((
0
27 / 27 / 9
Регистрация: 30.04.2012
Сообщений: 132
06.03.2014, 21:52 10
Цитата Сообщение от nokados Посмотреть сообщение
Должно быть не getElementByClassName
а getElementsByClassName
если вы скрипт ставите после кода, то windows onload по сути не нужен. Код не работал, потому что в нем была орфографическая ошибка. Исправьте
Javascript
1
music=document.getElementByClassName('music');
на
Javascript
1
music=document.getElementsByClassName('music');
Добавлено через 45 секунд
's' появляется
1
8 / 5 / 4
Регистрация: 18.02.2014
Сообщений: 409
06.03.2014, 21:56  [ТС] 11
ода nokados, спасибо вам ограмейнешое вы просто спасли мне жизнь я уже начал с ума сходить думал не сделаю никогда

Добавлено через 1 минуту
ой простите за мою надоедливость а можно еще так сделать что бы они играли еще и последовательно ну то есть один закончился начался другой если я вам надоел можете не отвечать мне в принцепи не обязательно)
0
27 / 27 / 9
Регистрация: 30.04.2012
Сообщений: 132
06.03.2014, 22:17 12
1) Не за что извиняться.
2) Замените ваш скрипт на этот:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var playedMusic= null,
            music=document.getElementsByClassName('music');
for (var k in music)
{
    if(typeof music[k]==='object')
    {
        music[k].next=(parseInt(k)+1<music.length)?parseInt(k)+1:0;
        music[k].onplay=function()
        {
            if(playedMusic!==null)
                playedMusic.pause();
            playedMusic=this;
        };
        music[k].onended=function(){
            music[this.next].play();
        };
    }
}
1
romchiksoad
07.03.2014, 00:08
  #13
 Комментарий модератора 
outZoNe, на будущее: если хотите добавить в пост картинку - загружайте ее на форум; если хотите показать код, то копируйте его, вставляет в текст сообщения и выделяйте соответствующми тегами подсветки синтаксиса.
0
8 / 5 / 4
Регистрация: 18.02.2014
Сообщений: 409
07.03.2014, 11:57  [ТС] 14
nokados, Спасибо большое вы мне очень помогли. А можно такой вопрос по теории этот html5 ну тоесть этот плеер будет одинаковый во всех браузерах или в каждом свой вот например у меня google chrom там я так понимаю этот плеер:
Название: ac61142d58675c4b31171bd66c8df3b1.png
Просмотров: 71

Размер: 3.7 Кб
а например в mozille будет все по другому работать и отображаться?

Добавлено через 4 минуты
romchiksoad, простите но я не нашел как и куда загружать картинки а с кодом спасибо я разобрался
 Комментарий модератора 
Прикрепляйте файлы и изображения к сообщениям.
https://www.cyberforum.ru/abou... post594251
0
romchiksoad
07.03.2014, 13:22
  #15

Не по теме:

outZoNe, под полем ввода сообщений есть ссылки на инструкции по пользованию редактором и BB-кодам в общем ;)

0
27 / 27 / 9
Регистрация: 30.04.2012
Сообщений: 132
07.03.2014, 14:54 16
Плееры похожи, но не одинаковы. Мазила -
Остановка текущего трека при запуске нового как осуществить

Opera -
Остановка текущего трека при запуске нового как осуществить

В опере, кстати, скрипт не работает. Возможно, не поддерживается mp3
1
8 / 5 / 4
Регистрация: 18.02.2014
Сообщений: 409
07.03.2014, 14:56  [ТС] 17
nokados, Косяк тогда получается свой swf плеер я уже сюда ни как не смогу прикрутить так как это html5?
0
27 / 27 / 9
Регистрация: 30.04.2012
Сообщений: 132
07.03.2014, 14:58 18
Конечно сможете. Html5 совместим с четвертым. Можно прописать условие, когда показывать swf-плеер, а когда html5.
1
8 / 5 / 4
Регистрация: 18.02.2014
Сообщений: 409
07.03.2014, 15:07  [ТС] 19
nokados, Я так понимаю я должен это сделать через js например так
Javascript
1
<script type="text/javascript" src="/player.swf"></script>
Добавлено через 2 минуты
да и так тоже не сработало
PHP/HTML
1
<object data="player.swf" width="600" height="30"><audio class="music" src="'.$dir.$files[$i].'"controls></audio></object></font>
0
27 / 27 / 9
Регистрация: 30.04.2012
Сообщений: 132
07.03.2014, 16:07 20
Ваш плеер нужно подключать так же, как и раньше. У вас сейчас есть два плеера: на flash и на html5
1
07.03.2014, 16:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2014, 16:07
Помогаю со студенческими работами здесь

WMPLib воспроизведение url, получить название текущего трека
Использую WMPLib для прослушивания радио. Как получить название текущей композиции?... (например...

Как сделать, чтобы ProgressBar заполнялся в ходе отсчета таймера и обновлялся при запуске нового?
Доброго времени суток. У меня имеется обратный отсчет TimeSpan и ProgressBar. Как сделать, чтобы...

Не работает wdActiveEndPageNumber (определение текущего номера страницы) при запуске макроса из Excel
Добрый день. Из екселя считаю количество слов в документе и на какой странице они находятся....

Ошибка при запуске нового проекта
Переустановила систему, соответственно и все ПО заново переустанавливала. Теперь не могу работать...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru