Как да възпроизведа списък с песни от страна на сървъра и да изпрати само текста на текущата песен до страната на клиента в php?

Това е малък пакет за офис служители. Опитвам се да разработя php приложение, което трябва да изпълнява mp3 песен на сървъра и да изпраща текстовете на текущата песен (само) към страната на клиента. Трябва да пусна списък с песни на случаен принцип в сървъра и текстовете на текущата песен (изпълняваща се на сървъра) трябва да бъдат изпратени от страна на клиента. За това направих следните неща (всички неща се правят в localhost):

  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