Как создать список воспроизведения с одним файлом php и несколькими медиа-файлами? - PullRequest
1 голос
/ 10 февраля 2012

ну я пытаюсь создать отличный плейлист музыки, используя только файл sigle php.

Прямо сейчас, с помощью этого кода я могу транслировать песню из одного источника медиа-файла:

<?php

  // Try and open the remote stream
  if (!$stream = fopen('http://example.com/audio.mp3', 'r')) {
    // If opening failed, inform the client we have no content
    header('HTTP/1.1 500 Internal Server Error');
    exit('Unable to open remote stream');
  }

  // It's probably an idea to remove the execution time limit - on Windows hosts
  // this could result in the audio stream cutting off mid-flow
  set_time_limit(0);

  // Inform the client we will be sending it some MPEG audio
  header('Content-Type: audio/mpeg');

  // Send the data
  fpassthru($stream);
  // Thanks DaveRandom

?>

Итак, идея почти проста: с помощью одного php-файла создайте список воспроизведения. Файл php передает первую песню, а затем сразу же воспроизводит другую, предварительно настроенную для файла php, и снова и снова, со всеми источниками в файле php.

Спасибо.

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

Потоковая передача - это протокол в реальном времени.В то время как php использует один протокол http запрос-ответ.Это означает, что ваш php не будет вызываться автоматически для автоматического проигрывания другой песни игроком.В лучшем случае, игрок остановится в конце трека, и только после повторного щелчка по списку будет отправлен второй запрос.

Теперь вам нужно определить второй запрос на воспроизведение другого трека.сеансы, вероятно, не работают в не-браузерных пользовательских агентах (таких как медиаплееры).так что вы можете иметь уникальный идентификатор в вашей строке запроса php и иметь локальную базу данных / etc для отслеживания того, что было воспроизведено в прошлый раз.

В любом случае, для автоматического переключения треков потребуется гораздо больше кода php, буфер httpпроверка, а также разбор mp3-файлов, поэтому последний поток и присоединение к следующему потоку без заголовков следующего mp3-файла / id3 / и т. д.

1 голос
/ 10 февраля 2012

Как сказал @nomaD, вы должны использовать клиентский скрипт и рассчитывать количество минут для трека, затем запустить таймер и, как только он достигнет времени, просто вызвать другой php с новым треком. Возможно, вам придется проверить это http://www.schillmania.com/projects/soundmanager2/demo/api/

...