Простой таймер PHP

В настоящее время у меня есть веб-сайт, который позволяет загружать аудио, и вы можете создать плейлист из этих загрузок. Когда вы загружаете, у меня есть getID3(), чтобы получить продолжительность и сохранить ее в базе данных.

В настоящее время у меня есть файл автозапуска, однако цель длительности в базе данных состоит в том, чтобы сделать таймер, который будет принимать это число и будет вести обратный отсчет во время воспроизведения песни. Когда он достигнет значения "длительность" в базе данных, я хочу, чтобы он затем загружал новую песню для потоковой передачи. Каков наилучший способ сделать это?

Для получения дополнительной информации, есть ли способ узнать текущее время, если переместить ползунок в середину песни, чтобы таймер мог наверстать упущенное? Или есть лучший способ сделать это даже без использования таймера?

2 ответа

Вы можете использовать класс таймера

<?php

class Timer {

   var $classname = "Timer";
   var $start     = 0;
   var $stop      = 0;
   var $elapsed   = 0;

   # Constructor
   function Timer( $start = true ) {
      if ( $start )
         $this->start();
   }

   # Start counting time
   function start() {
      $this->start = $this->_gettime();
   }

   # Stop counting time
   function stop() {
      $this->stop    = $this->_gettime();
      $this->elapsed = $this->_compute();
   }

   # Get Elapsed Time
   function elapsed() {
      if ( !$elapsed )
         $this->stop();

      return $this->elapsed;
   }

   # Resets Timer so it can be used again
   function reset() {
      $this->start   = 0;
      $this->stop    = 0;
      $this->elapsed = 0;
   }

   #### PRIVATE METHODS ####

   # Get Current Time
   function _gettime() {
      $mtime = microtime();
      $mtime = explode( " ", $mtime );
      return $mtime[1] + $mtime[0];
   }

   # Compute elapsed time
   function _compute() {
      return $this->stop - $this->start;
   }
}

?>

или вы можете проверить документы для класса таймера здесь

Используя звуковой тег html 5, вы можете позволить JavaScript определять продолжительность песни и воспроизводить следующую песню с несколькими строками кода.

В этом примере я использую tracks переменная, которую вы можете легко построить с помощью PHP json_encode(),

var player;
var playlist;
var tracks;
var current;

$(function() {
  current = -1;
  player = $('#audio')[0];
  playlist = $('#playlist');
  tracks = [{
      title: "The Kyoto : Hachiko (The Faithtful Dog)",
      src: "https://freemusicarchive.org/music/download/34342f0461bd14291ab21bae5f1bfc57b3120677.mp3"
    },
    {
      title: "Jahzzar  : The last ones",
      src: "https://freemusicarchive.org/music/download/8d97152c47959e384ed4b991ac8012665e121eac.mp3"
    },
    {
      title: "Gillicuddy  : Jupiter The Blue",
      src: "https://freemusicarchive.org/music/download/bf36de47dafa5c162b45a85a90739f3ef1160832.mp3"
    }
  ];

  function next() {
    current++;
    if (current > tracks.length) {
      current = 0;
    }

    player.src = tracks[current].src;
    player.load();
    player.play();
  }

  // Set volume down a bit and play on page load.
  player.volume - .10;
  next();

  // Event that fires when the song ended.
  player.addEventListener('ended', function(e) {
    next();
  });

  // Write playlist in document.
  for (let o of tracks) {
    playlist.append('<li><a href="' + o.src + '">' + o.title + '</a></li>');
  }
});
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>

<audio id="audio" preload="auto" tabindex="0" controls="" type="audio/mpeg">
  <source type="audio/mp3" src="">
  Sorry, your browser does not support HTML5 audio.
</audio>
<ul id="playlist"></ul>

Другие вопросы по тегам