0

所以我发现只有 1 个问题与我的类似,而答案并没有真正帮助,所以我希望用我自己的代码提问可能会帮助我找到我正在寻找的答案。

我想在发布新帖子时为我的喊话箱添加声音。我相信播放声音功能的那段代码会在这里

function shouts() {
                clearTimeout(getshout);
                var xmlHttp = (window.XMLHttpRequest) ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
                xmlHttp.open("GET", "shoutbox/shouts.php?i=" + Math.random());
                xmlHttp.onreadystatechange = function() {
                    if (this.readyState == 4) {
                        if (parseInt(this.responseText) > current_shouts) {
                            getshouts();
                            current_shouts = parseInt(this.responseText);
                        }
                        getshout = setTimeout("shouts()", 1000);
                    }
                }
                xmlHttp.send(null);
            }

但我不是 100% 确定,我知道这是它检查数据库中新条目的地方,该函数调用的相应 php 代码是

<?php
    require_once("../config.php");
    echo implode(mysql_fetch_assoc(mysql_query("SELECT COUNT(id) FROM shout")));
?>

我很确定不必为了执行此操作而触摸此代码。我已经在 Google 上进行了搜索,并检查了多个论坛,但我还没有找到真正有效的方法,我并不是要求你们为我编写代码,只是给我一个正确的方向推动!

如果还有其他需要,请告诉我,我会编辑我的帖子。

谢谢,凯西

4

4 回答 4

1

您页面上的某处有

<audio id="myaudio" src="shout.mp3"></audio>

并在获得新的呼声时(可能在致电之前getshouts())做

document.getElementById('myaudio').play();
于 2012-06-27T02:33:12.540 回答
1

我会audio.play()在里面打电话getshouts()

请记住,音频标签仅在最新的浏览器上受支持。查看此页面以了解您的音频标签的后备机制:http: //code.coneybeare.net/getting-html5-audio-tag-and-flash-fallback-to

HTML

<audio id="audioplayer" preload>
    <source src="audio.mp3">
</audio>

Javascript

var audioTag = document.createElement('audio');
if (!(!!(audioTag.canPlayType) && ("no" != audioTag.canPlayType("audio/mpeg")) && ("" != audioTag.canPlayType("audio/mpeg")))) {
    AudioPlayer.embed("audioplayer", {soundFile: "audio.mp3"});
}

function getshouts(){
    ... // your code

    if(success){
        audioTag.play();
    }
}

这段代码未经测试,但会给你一个基本的想法。

更多资源:

干杯!

于 2012-06-27T03:06:44.350 回答
0

继续 Eugene 的帖子,编辑您的 php 文件,将回复添加到 mysql 数据库并播放音乐。

于 2012-06-27T02:35:42.990 回答
0

我的设计是显示来自单行 MySQL 表的声音文件名,并让用户可以选择播放它们。列名代表在最终应用程序中促成声音播放的事件。这是PHP代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

  <head>

    <title>Event Sounds</title>

    <link rel="stylesheet" type="text/css" href="common.css" />

  </head>

  <body>


    <h1><b>AZ Science Bowl</b> -- Back Room Operations</h1>
    <h2>Event Sounds Selected -- and Test Play</h2>



<?php
$dsn = "mysql:dbname=SciBwl_Operation_TestI";
$username = "********";

$password = "********";



try {

  $conn = new PDO( $dsn, $username, $password );

  $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

} catch ( PDOException $e ) {

  echo "Connection failed: " . $e->getMessage();

}



$sql = "SELECT * FROM SoundsSelect";



echo "<ul>";



try {

  $rows = $conn->query( $sql );

  foreach ( $rows as $row ) {

    echo "<li>For <b>Program Start:</b> " . $row["ProgStart"] . "\t<audio controls><source src=\"./sounds/" . $row["ProgStart"] . "\" type=\"audio/wav\"></audio></li>";
    echo "<li>For <b>Break & Round Start:</b> " . $row["BrkRndStart"] . "\t<audio controls><source src=\"./sounds/" . $row["BrkRndStart"] . "\" type=\"audio/wav\"></audio></li>";
    echo "<li>For <b>Toss & Bonus Start:</b> " . $row["TossBonusStart"] . "\t<audio controls><source src=\"./sounds/" . $row["TossBonusStart"] . "\" type=\"audio/wav\"></audio></li>";
    echo "<li>For <b>5 Second Warning:</b> " . $row["5SecWarn"] . "\t<audio controls><source src=\"./sounds/" . $row["5SecWarn"] . "\" type=\"audio/wav\"></audio></li>";
    echo "<li>For <b>Toss & Bonus End:</b> " . $row["TossBonusEnd"] . "\t<audio controls><source src=\"./sounds/" . $row["TossBonusEnd"] . "\" type=\"audio/wav\"></audio></li>";
    echo "<li>For <b>30 Second End of Break Warning:</b> " . $row["30SecWarn"] . "\t<audio controls><source src=\"./sounds/" . $row["30SecWarn"] . "\" type=\"audio/wav\"></audio></li>";
    echo "<li>For <b>Round End:</b> " . $row["RoundEnd"] . "\t<audio controls><source src=\"./sounds/" . $row["RoundEnd"] . "\" type=\"audio/wav\"></audio></li>";

  }

} catch ( PDOException $e ) {

  echo "Query failed: " . $e->getMessage();

}



echo "</ul>";

$conn = null;


?>

<br><br>
    </body>

</html>
于 2017-05-17T06:55:57.393 回答