2013-03-27 17 views
5

Witam mam okno ostrzeżenia wiadomości, które pojawia się, gdy użytkownik dostaje nową wiadomość, co chcę zrobić, to dodać dźwięk do tego pola, gdy wyskoczy, używam instrukcji php, aby sprawdzić, kiedy użytkownik dostaje nowy wiadomość i próbowałem dodać dźwięk, wykonując następujące czynności, ale nie działa. Proszę, ktoś może mi pokazać, jak to zrobić. dzięki.odtwarzać klip dźwiękowy, gdy instrukcja php/mysql if jest prawdziwa?

<?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'/>"); ?> 
+0

Może nie jest powiązany, ale czy ten kod musi być umieszczony w nawiasach '{}' z pętli 'while'? – hellohellosharp

+0

Domyślam się, że to nie jest problem PHP/MySQL ... czy sprawdziłeś, czy tag embed jest częścią twojego źródła strony? –

Odpowiedz

3
<?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>'; 
    } 
} 
?> 

Oto funkcja 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> 
+0

dziękuję za cienie, próbowałem tego, ale wciąż nie jest odtwarzany żaden plik audio. –

+0

@JamesPale Próbowałem tego, zdecydowanie działa. Sprawdź, czy twoja ścieżka jest prawidłowa. –

+0

nic się nie dzieje, po prostu nie słychać dźwięku, nie ma żadnych błędów. –

1

Zgodnie z pytaniem:

hi mam alert okno komunikatu, który pojawia się, gdy użytkownik dostaje nowy wiadomość, chcę dodać dźwięk do tego pola, gdy pojawi się

Masz już jakąś funkcję javascript, która wyświetla pole ostrzeżenia w razie potrzeby. Użyj informacji z this answer, aby odtworzyć z nim dźwięk.

<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(); 
Powiązane problemy