【问题标题】:play sound clip when php/mysql if statement is true?当 php/mysql if 语句为真时播放声音剪辑?
【发布时间】:2013-03-27 23:54:04
【问题描述】:

嗨,我有一个消息警告框,当用户收到新消息时会出现,我想做的是在它弹出时向这个框添加声音,我正在使用 php if 语句来检查用户何时收到新消息,我尝试通过执行以下操作添加声音,但它不起作用请有人告诉我如何做到这一点。谢谢。

<?php
$check_new_chats = check_new_chats();
while ($chat = mysql_fetch_array($check_new_chats)) 
if (isset($_SESSION['user_id'])) { 
        if ($chat['to_user_id'] == $_SESSION['user_id']){ 
        echo( "<embed name='sound_file' src='/assets/music/sound_file.mp3' loop='true' hidden='true' autostart='true'/>"); ?>

【问题讨论】:

  • 可能不相关,但该代码是否需要从 while 循环中括在括号 {} 中?
  • 我猜这不是真正的 PHP/MySQL 问题。您是否检查过 embed-tag 是否是您页面源代码的一部分?

标签: php mysql


【解决方案1】:
<?php
$check_new_chats = check_new_chats();
while ($chat = mysql_fetch_array($check_new_chats)) 
if (isset($_SESSION['user_id'])) { 
    if($chat['to_user_id'] == $_SESSION['user_id']){ 
        echo '<script type="text/javascript">play_sound();</script>';
    }
}
?>

这里是 Javascript 函数:

<script type="text/javascript">
    function play_sound() {
        var audioElement = document.createElement('audio');
        audioElement.setAttribute('src', '/assets/music/sound_file.mp3');
        audioElement.setAttribute('autoplay', 'autoplay');
        audioElement.load();
        audioElement.play();
    }
</script>

【讨论】:

  • 感谢薄,我试过了,但仍然没有播放音频文件。
  • @JamesPale 我试过这个,绝对有效。检查您的路径是否正确。
  • 什么都没有发生,只是没有声音播放,没有任何错误。
  • @JamesPale 检查路径。我正在使用确切的代码,它正在工作!
【解决方案2】:

根据问题:

我有一个消息提醒框,当用户收到新消息时会出现 消息,我要做的是在弹出此框时为其添加声音

您已经拥有某种 javascript 函数,可在需要时显示警告框。使用来自this answer 的信息来播放声音。

<audio id="soundHandle" style="display: none;"></audio>
<script>
  soundHandle = document.getElementById('soundHandle');
  soundHandle.src = '/assets/music/sound_file.mp3';
</script>



//With your message alert function....
alert("Message box");
soundHandle.play();

【讨论】:

    猜你喜欢
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    相关资源
    最近更新 更多