javascript - 发送警报通知时播放声音

标签 javascript php jquery audio cron

我有一个 php 文件,在其中检查必须发送给用户的警报。

此文件是在 Ubuntu 中使用 cron 或在 Windows 中的任务管理器中启动的。这部分效果很好。

现在,我需要在每次发送警报时播放声音。

如果我在浏览器中手动启动 php 文件,它就可以工作。声音正在播放。但是,当我在命令行中启动它时(就像在 cron 中启动它一样),会发送警报但不会播放声音。

我使用一个插件(jquery.playsound.js),它来自:https://github.com/admsev/jquery-play-sound

它只包含这部分代码:

(function($){
    $.extend({
        playSound: function(){
          return $(
            '<audio autoplay="autoplay" style="display:none;">'
              + '<source src="' + arguments[0] + '.mp3" />'
              + '<source src="' + arguments[0] + '.ogg" />'
              + '<embed src="' + arguments[0] + '.mp3" hidden="true" autostart="true" loop="false" class="playSound" />'
              + '</audio>'
          ).appendTo('body');
        }
    });
})(jQuery);

这是我使用的代码。

<script src='assets/js/jquery-2.1.0.min.js'></script>
<script src='assets/js/jquery.playsound.js'></script>

$resultAlarm = getAlarmToSend();
if( $resultAlarm ){
    while ($row = getRowElement($resultAlarm)){
        $to = $row['Email'];
        $subject = '***** ALARM *****';
        $message = 'THIS IS AN ALARM!!';

        include 'sendmail.php';

        ?>

        <script type="text/javascript">
            $.playSound("assets/sounds/alarm");
        </script>

        <?php 

        resetAlarm();
    }   
}

有人可以帮助我吗?

最佳答案

JavaScript 需要浏览器才能运行(通常),这是 shell/控制台上没有的。

您仍然可以使用 shell_execaplay 在 Ubuntu 上播放声音,例如:

shell_exec("aplay /home/user/path/to/alarm.wav")

关于javascript - 发送警报通知时播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37511068/

相关文章:

javascript - 以数组形式访问javascript中的python列表

javascript - Html.Replace 在 Node 中不起作用

php - 将字符串分解为数组

php - 使用 javascript 和 AJAX 进行数据库过滤

javascript - 在 Bootstrap 2.3 中更改崩溃图标而不是在 bootstrap 3 中

javascript - 如何在Javascript中用英文单词写一个整数?

javascript - 在运行时创建时移动元素时出错

javascript - JSLint 和书签

javascript - ngDialog 模式不弹出

c# - 如何在PHP中获取C#的System.Text?