2012-06-27 56 views
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"))); 
?> 

我很肯定這個代碼不必爲了做到這一點而被觸及。我已經在谷歌上搜索過,並且查看了多個論壇,但是我還沒有找到一個真正有用的方法,我不是要求你們爲我寫代碼,只是給我一個正確的方向!

如果還有其他需要的,請讓我知道,我會編輯我的帖子。

謝謝,凱西

回答

1

某處你的頁面上有

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

而就得到一個新的呼喊(也許在調用getshouts()前)做

document.getElementById('myaudio').play(); 
+0

這種打破了代碼,我已經實現了幾種方式,它停止吼吼箱加載其他用戶的新帖子。不知道我做錯了什麼:/ – kira423

+0

感謝victmo的帖子,我能夠以正確的方式實現這個目標! – kira423

0

繼續尤金的帖子,編輯你的php文件添加了對mysql數據庫的回覆並播放音樂。

+0

我不知道你是什麼意思,我會添加到文件中,將文件實際發佈到數據庫,這將使它播放聲音oO – kira423

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(); 
    } 
} 

這段代碼沒有進行測試,但會給你一個基本思路。

更多資源:

乾杯!

+0

我很高興你發佈了這個,我無法實現它但它讓我更加了解如何處理Eugen發佈的代碼!非常感謝我會盡快給我一個有用的凹凸 – kira423

+0

很高興幫助你!乾杯 – victmo

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>