2016-05-29 107 views
1

我有一个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(); 
    } 
} 

有人可以帮助我吗?

+0

的JavaScript(正常)的壳/控制台上不起作用:

可以使用shell_execaplay,像仍然播放声音在Ubuntu。 –

回答

0

JavaScript需要浏览器运行(通常),这是shell/console上没有的。

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

好吧,我会在PHP中尝试这个。谢谢 – sincos