当 php/mysql if 语句为真时播放声音剪辑?

Posted

技术标签:

【中文标题】当 php/mysql if 语句为真时播放声音剪辑?【英文标题】:play sound clip when php/mysql if statement is true? 【发布时间】: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 是否是您页面源代码的一部分? 【参考方案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();

【讨论】:

以上是关于当 php/mysql if 语句为真时播放声音剪辑?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript条件语句

python之控制流

条件语句示例

c语言中if(c=a)是否相当于if(1),因为=不是判断符号?

C while 循环仅在语句为真时运行?

shell 编码语句