Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve galera do imasters,
preciso da ajuda de vcs, estou desenvolvendo um helpdesk e na página de administração quero implementar um audio que seja tocado toda vez que chegar uma nova solicitação (ninguém merece ficar olhando a página toda hora para ver se chegou alguma solicitação) porém quero isso em tempo real assim que for aberta uma solicitação, um som será emitido.
Desenvolvi o código abaixo para verificar se há uma nova solicitação
<?php
$sql = "select id_solicitacao from hd_solicitacoes order by id_solicitacao desc limit 1;";
$resultado = mysql_query($sql);
while (list($id_solicitacao) = mysql_fetch_array($resultado)) {
if(!($_SESSION['ultsolicitacao']))
$_SESSION['ultsolicitacao'] = $id_solicitacao;
else{
if($_SESSION['ultsolicitacao'] != $id_solicitacao){
echo '<audio src="audio/notificacao.wav" autoplay></audio>';
$_SESSION['ultsolicitacao'] = $id_solicitacao;
}
}
}
?>
Como não quero que a página seja recarregada toda hora pensei em implementar um ajax para que não seja necessário recarregar a página. Mas não tenho muita noção em ajax :upset: alguém pode me ajudar?
>
Com apenas ajax não é possível.
você tem q utilizar um recurso de server push para isso.(um pouco mais complicado)
vish piorou minha situção... Tenho nem ideia de como que utiliza esse recurso
Fiz um exemplo simples:
verifica.php
<?php
echo '0';
?>
teste.html
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
</head>
<body>
<audio src="mp3.mp3" id="mp3"></audio>
<script>
$(document).ready(function(){
setInterval(function (){
$.get( "verifica.php", function( data ) {
if(data == 1)
{
document.getElementById("mp3").play();
}
});
}, 1000);
});
</script>
</body>
</html>
O que isso faz?
Ao finalizar de carregar a página teste.html o javascript entra em um timer de 1 segundo, e cada iteração, ele chama por get a url verifica.php
Quando essa página imprimir 1, o som será executado.
Então para testar, apenas salve os dois arquivos com esses nomes na mesma pasta, e salve um arquivo mp3.mp3 junto, após isso, entre no teste.html, não vai acontecer nada, mas abra o arquivo verifica.php com o editor, mude o 0 para 1, e salve, pronto, a música vai começar tocar.
Acho que deu pra entender a ideia.
Até mais.
Vlw pela ajuda ai.
Com apenas ajax não é possível.
Vc tem q utilizar um recurso de server push para isso.(um pouco mais complicado)