Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.12.2016, 00:28
Новичок на форуме
Отправить личное сообщение для Nyiann Посмотреть профиль Найти все сообщения от Nyiann
 
Регистрация: 15.12.2016
Сообщений: 5

Audio player - работает только 1 трек
Всем привет.

Я искал аудио плеер для сайта и наткнулся на вот такой вот плеер:
http://jsfiddle.net/kmodfc8w/59/

распишу его код тут ниже:

<style>
#player{
  position:relative;
  margin:50px auto;
  width:300px;
  text-align:center;
  font-family:Helvetica, Arial;
}
#playpause{
  border:1px solid #eee;
  cursor:pointer;
  padding:12px 0;
  color:#888;
  font-size:12px;
  border-radius:3px;
}
#playpause:hover{
  border-color: #ccc;
}
#volume, #progressbar{
  border:none; 
  height:2px;
}
#volume{
  background:hsla(180,75%,50%,1);
}
#progressbar{
  background:#ccc;
}
.ui-slider-handle{
  border-radius:50%;
  top: -5px !important;
  width: 11px !important;
  height: 11px !important;
  margin-left:-5px !important;
}
</style>

<div id="player"> 
  <audio id="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" >
  </audio>  
  <div id="volume"></div><br>
  <div id="progressbar"></div><br> 
  <div id="playpause"></div>
</div>


$(function() {

  var $aud = $("#audio"),
      $pp  = $('#playpause'),
      $vol = $('#volume'),
      $bar = $("#progressbar"),
      AUDIO= $aud[0];
  
  AUDIO.volume = 0.75;
  AUDIO.addEventListener("timeupdate", progress, false);
  
  function getTime(t) {
    var m=~~(t/60), s=~~(t % 60);
    return (m<10?"0"+m:m)+':'+(s<10?"0"+s:s);
  }
  
  function progress() {
    $bar.slider('value', ~~(100/AUDIO.duration*AUDIO.currentTime));
    $pp.text(getTime(AUDIO.currentTime));
  }

  $vol.slider( {
    value : AUDIO.volume*100,
    slide : function(ev, ui) {
      $vol.css({background:"hsla(180,"+ui.value+"%,50%,1)"});
      AUDIO.volume = ui.value/100; 
    } 
  });
   
  $bar.slider( {
    value : AUDIO.currentTime,
    slide : function(ev, ui) {
      AUDIO.currentTime = AUDIO.duration/100*ui.value;
    }
  });
  
  $pp.click(function() {
    return AUDIO[AUDIO.paused?'play':'pause']();
  });
  
});


Дело в том что если добавить в данный аудио плеер 2 div#player то второй не будет стилизоваться и им нельзя управлять..

не понимаю как решить, можете помочь?

<div id="player"> <!-- будет отображать время песни и управление -->
  <audio id="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" >
  </audio>  
  <div id="volume"></div><br>
  <div id="progressbar"></div><br> 
  <div id="playpause"></div>
</div>

<div id="player"> <!-- Не будет отображать время песни и управление -->
  <audio id="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" >
  </audio>  
  <div id="volume"></div><br>
  <div id="progressbar"></div><br> 
  <div id="playpause"></div>
</div>
Ответить с цитированием
  #2 (permalink)  
Старый 15.12.2016, 12:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Nyiann,
id уникально
Ответить с цитированием
  #3 (permalink)  
Старый 15.12.2016, 14:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Nyiann, классы вместо id
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
  <script>
$(function() {
  $(".player").each(function(indx, pl){
  var $aud = $(".audio", pl),
      $pp  = $('.playpause', pl),
      $vol = $('.volume', pl),
      $bar = $(".progressbar", pl),
      AUDIO= $aud[0];

  AUDIO.volume = 0.75;
  AUDIO.addEventListener("timeupdate", progress, false);

  function getTime(t) {
    var m=~~(t/60), s=~~(t % 60);
    return (m<10?"0"+m:m)+':'+(s<10?"0"+s:s);
  }

  function progress() {
    $bar.slider('value', ~~(100/AUDIO.duration*AUDIO.currentTime));
    $pp.text(getTime(AUDIO.currentTime));
  }

  $vol.slider( {
    value : AUDIO.volume*100,
    slide : function(ev, ui) {
      $vol.css({background:"hsla(180,"+ui.value+"%,50%,1)"});
      AUDIO.volume = ui.value/100;
    }
  });

  $bar.slider( {
    value : AUDIO.currentTime,
    slide : function(ev, ui) {
      AUDIO.currentTime = AUDIO.duration/100*ui.value;
    }
  });

  $pp.click(function() {
    return AUDIO[AUDIO.paused?'play':'pause']();
  });
  });
});

  </script>
</head>

<body>
<style>
.player{
  position:relative;
  margin:50px auto;
  width:300px;
  text-align:center;
  font-family:Helvetica, Arial;
}
.playpause{
  border:1px solid #eee;
  cursor:pointer;
  padding:12px 0;
  color:.888;
  font-size:12px;
  border-radius:3px;
}
.playpause:hover{
  border-color: #ccc;
}
.volume, .progressbar{
  border:none;
  height:2px;
}
.volume{
  background:hsla(180,75%,50%,1);
}
.progressbar{
  background:#ccc;
}
.ui-slider-handle{
  border-radius:50%;
  top: -5px !important;
  width: 11px !important;
  height: 11px !important;
  margin-left:-5px !important;
}
</style>

<div class="player">
  <audio class="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" >
  </audio>
  <div class="volume"></div><br>
  <div class="progressbar"></div><br>
  <div class="playpause"></div>
</div>
<div class="player">
  <audio class="audio" src="http://upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg" >
  </audio>
  <div class="volume"></div><br>
  <div class="progressbar"></div><br>
  <div class="playpause"></div>
</div>

</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 16.12.2016, 01:51
Новичок на форуме
Отправить личное сообщение для Nyiann Посмотреть профиль Найти все сообщения от Nyiann
 
Регистрация: 15.12.2016
Сообщений: 5

рони,
Спасибо)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS работает только в мазиле. FoxGid Элементы интерфейса 0 20.11.2015 08:28
Скрипт работает только в IE xstp Общие вопросы Javascript 3 13.09.2009 15:22
Скрипт меню работает только под IE7 и выше TAILER Internet Explorer 1 31.08.2009 13:21
Скрипт меню не работает только в Firefox somatic Firefox/Mozilla 2 28.07.2009 03:23
Не работает AppendChild для div, причём только в IE _Kpot_ Internet Explorer 5 12.02.2009 10:55