Я успешно установил madplay на мой роутер, и он работает нормально, если я запускаю из putty.Теперь мой вопрос, как я могу запустить его из веб-интерфейса.в настоящее время у меня уже есть страница php, которая отображает список mp3 из папки с моей песней.
на шпатлевке. Я могу воспроизвести ее с
madplay -Q "имя-папки / name-of-my.file.mp3 "
Пока я создаю 3 файла: index.php, play.php, play.sh
Структуры файлов
/www
|- cgi-bin
|- play.sh
|- musicplayer
|- index.php
|- play.php
index.php , используется для перечисления моего mp3-файла
$dir = "path-to-mp3-folder";
$files = scandir($dir);
$awal = 2;
while($awal < count($files)) {
echo "<tr><td><a href=\"javascript:void(0);\" onclick=\"play('" . $files[$awal] . "')\">" . $files[$awal] . "</a></td></tr>";
$awal++;
}
<script type="text/javascript">
function play(e){var t={lagu:e};$.ajax({url:"http://router-ip/musicplayer/play.php",type:"POST",data:t,success:function(e){},error:function(e){alert("Kesalahan URL")}})}
</script>
play.php , используемый для запуска play.sh внутри папки cgi-bin
<?php
header('Content-type: text/html; charset=utf-8');
if(isset($_POST['lagu'])) {
$lagu = str_replace(" ", "\ ", $_POST['lagu']);
exec('killall -9 madplay');
exec('echo "' . $lagu . '" > /tmp/playedmp3');
//exec('sh /www/cgi-bin/play.sh');
exec('curl http://router-ip/cgi-bin/play.sh');
echo $lagu;
} else {
echo "Tidak Ada Lagu Terpilih";
} ?>
play.sh (внутри папки cgi-bin)
#!/bin/bash
LAGU=`cat /tmp/playedmp3`
PUTAR="/www/musicplayer/lagu/$LAGU"
killall -9 madplay
nohup madplay -Q $PUTAR &
Когда я пытаюсь получить доступ к index.php и нажимаю на имена mp3, нет ошибок, но не воспроизводится mp3, как если бы я запускал его из оболочки замазки.