Arhn - архитектура программирования

Простой php-таймер

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

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

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

06.06.2015

Ответы:


1

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

<?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;
   }
}

?>

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

06.06.2015

2

Используя аудиотег 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>

06.06.2015
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..