Как воспроизвести список песен на стороне сервера и отправить только текст текущей песни на сторону клиента в php?

Это небольшой пакет для офисных сотрудников. Я пытаюсь разработать приложение php, которое должно запускать песню mp3 на сервере и отправлять текст текущей песни (только) на сторону клиента. Мне нужно случайным образом воспроизвести список песен на сервере, а текст текущей песни (работающей на сервере) должен быть отправлен на стороне клиента. Для этого я сделал следующие вещи (все делается на локальном хосте):

  database name:album
  table name: song(id,name,lyrics,status)
  Note: this is manual update done by admin::
  filename: - admin.php
  $id = $_POST['id'];
  mysqli_query($con,"update album set status=0");//all song status cleared
  mysqli_query($con,"update album set status=1 where id=$id");//status with value 1 is playing on               server

имя файла: - client.php

<html>
    <meta http-equiv="refresh" content="1" >
    <body align="center" bgcolor="skyblue">
    <?php
    $con=mysqli_connect("localhost","root","root","test");
    // Check connection
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    //echo $id;
    $result = mysqli_query($con,"select name,lyrics from album where album.status=1");
    //echo last_query();die;
    while($row = mysqli_fetch_array($result))
    {
        echo "<h1>".$row['name']."</h1>";
        echo "<br />";
        echo "<h3>".$row['lyrics']."</h3>";
    }
    mysqli_close($con);
    ?>
    </body>
</html>

Теперь все в порядке с приведенным выше кодом, но администратор должен каждый раз обновлять, какая песня воспроизводится на сервере. Мне нужно, чтобы эта задача была автоматизирована. Для этого мне нужно воспроизвести список песен (из базы данных), которые нужно воспроизвести, и их соответствующие тексты на стороне клиента. Что делать?? Заранее спасибо!!


person Sandesh Sharma    schedule 01.03.2013    source источник
comment
Песни должны воспроизводиться на стороне клиента. Вы должны изменить логику.   -  person Oyeme    schedule 01.03.2013
comment
нет, песня должна воспроизводиться на стороне сервера. @Oyeme, это приложение для небольшого офиса всего на одну комнату или в холл. песня воспроизводится на сервере, и каждый клиент слушает ее, ни один клиент не имеет права менять песню или что-либо делать, так что. и клиент может только прочитать текст этой песни..   -  person Sandesh Sharma    schedule 01.03.2013
comment
Просто взгляните на ampache.org.   -  person Oyeme    schedule 01.03.2013
comment
Ты про стрим?   -  person Antony    schedule 01.03.2013
comment
Действительно ли сервер должен воспроизводить музыкальный файл или просто анализировать его?   -  person Mark Baker    schedule 01.03.2013
comment
@antony, нет, это не о потоковой передаче. песня находится на сервере и должна воспроизводиться на сервере, но только текст этой песни, я повторяю, что только текст этой песни должен быть отправлен клиенту.   -  person Sandesh Sharma    schedule 01.03.2013
comment
@Mark Baker, сервер должен воспроизводить музыкальный файл, без разбора ..   -  person Sandesh Sharma    schedule 01.03.2013
comment
superuser.com/questions/41780/ может быть отправной точкой   -  person Mark Baker    schedule 01.03.2013


Ответы (1)


Я думаю, это то, что вы хотите (он использует mp3-плеер mpg123, но вы можете использовать что угодно (cvlc, mplayer,...):

<?php
set_time_limit(0);
$con=mysqli_connect(...);
// Check connection
if (mysqli_connect_errno()){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
while(true){
  mysqli_query($con,"update album set status=0");
  $res = mysqli_query($con,"select id, file from album order by rand() limit 1");
  $row = mysqli_fetch_assoc($res);
  mysqli_query($con,"update album set status=1 where id=".$row['id']);
  passthru('mpg123 '.escapeshellarg($row['file']));
}

Этот скрипт предназначен для выполнения из командной строки (не с веб-сервера)

person voondo    schedule 02.03.2013
comment
как использовать функцию passthru в windows? Мне нужно воспроизвести одну песню за другой.., для этого я использовал $file='./music/'.$row['name']; echo ‹embed src =\$file\ hidden=\true\ autostart=\true\›‹/embed›; Но в один момент играет только одна песня, а для другой песни нужно обновить страницу?? Как автоматически воспроизводить следующую песню после другой песни ..? - person Sandesh Sharma; 04.03.2013
comment
вместо этого вы можете попробовать exec() или system(). Но я не понимаю, потому что вы сказали, что песня должна воспроизводиться на стороне сервера. и использование ‹embed› на стороне клиента - person voondo; 04.03.2013