【问题标题】:Start mp3 playback via shell command on raspberry pi在树莓派上通过 shell 命令开始 mp3 播放
【发布时间】:2016-09-17 00:54:12
【问题描述】:

我目前正在开发一个树莓派,我在上面放了一个 apache 服务器,并且还连接了一个扬声器。

我想要做的是通过点击 html 网页上的某个按钮让覆盆子播放一些音乐。

这是我的代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-" />
    <title>Sons</title>
    </head>
    <body>
    <p>Voici les son que le cone est capable de produire:<br />
    <ul>
            <li>Chien</li>
<form method="post" action=""
    <p>
    <input type="submit" name="Envoyer" value="Poster"/>
    </p>
</form>
            <li>Alarme</li>

            <li>Buzzer</li>
    </ul>

    <p/>
<?php
    if(isset($_POST['exec']))
    {

    if(isset($_GET['action']) && $_GET['action']=='yes')
            {
            $cmd=exec(escapeshellcmd('/usr/bin/mpg123 /var/www/html/chien.mp3'));
            $cmd=exec(escapeshellcmd('mv /var/www/html/test.txt     /var/www/html/images/'));

    if(!$cmd)
    {
            echo "C'est bon";
    }
    else
    {
            echo "Nope";
    }
    }
    }

echo '<form method="post" action="Son.php?action=yes">
<input type="submit" name="exec" value="Executer">
</form>';
?>

    </body>
</html>

所以我使用 mpg123 在树莓派上播放音乐,当我在 shell 中键入命令时它工作得很好,但在 PHP 部分却没有。

奇怪的是,仅移动 .txt 文件的命令 mv 实际上正在工作,而另一个却没有。

谢谢你的帮助,我现在真的不知道该怎么办,我刚开始学习 HTML 和 PHP,所以我还是有点困惑。

【问题讨论】:

  • 您的问题似乎不在于执行 shell 命令。我建议了新标题。
  • 我认为这个命令mpg123 chien.mp3需要退出才能正确加载PHP页面。尝试在末尾加上 &。 mpg123 chien.mp3&amp; 运行结束立即退出。
  • 嘿,感谢您的帮助。在末尾添加 & 不会改变任何内容。我应该在标题中写什么?
  • 尝试指定文件的完整路径,例如mpg123 /var/www/chien.mp3 或任何地方。还要检查错误日志,看看它是否因权限原因而失败。
  • 我尝试了完整路径,但仍然是同样的问题,我还检查了 apache2 的 error_log 文件,没有权限错误。

标签: php html shell raspberry-pi


【解决方案1】:

我也是 PHP 新手,但也许您正在用第二个命令覆盖第一个命令,因为它们使用相同的变量名?还是 $CMD 是命令的返回值?

【讨论】:

  • 是的 cmd 与 shell 命令无关,我这样做是因为我想知道程序是否真的使用了这些指令。我尝试了一条线,但它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 2015-09-22
相关资源
最近更新 更多