v2.5.2
Giriş yap

Yeni veri eklendiğin de bildirim sesi çaldırma

Anonim
603 defa görüntülendi

Merhaba admin panelin de sipariş tablom var yeni veri eklendiğin de arka plan da 5-10 saniye süren bir mp3 çaldırmak istiyorum bunu nası yapabilirim

Cevap yaz
Cevaplar (2)
ebykdrms
955 gün önce

2012 yılında stackoverflow.com üzerinde sorunuza cevap verilmiş.

Web Sitesinde Bildirim Sesi Nasıl Verilir?

Belirli bir olay geliştiğinde web sitemin kullanıcıya bir bildirim sesi çıkarmasını istiyorum.
Sayfa açıldığında ses otomatik olarak oynatılmamalıdır. Bunun yerine bir olay gerçekleştiğinde javascript ile devreye sokulmalıdır.
Bunun eski tarayıcılarda (IE 6 gibi) çalışması da gerekiyor.
Yani basitçe 2 sorum var:

  • Hangi codec bileşenini kullanmalıyım?
  • Ses dosyasını gömmek için en iyi yol nedir? (<embed>, <object>, <audio>, Flash...)

Doğru Cevap

2021 Çözümü
function sesOynat(url) {
  const audio = new Audio(url);
  audio.play();
}
<button onclick="sesOynat('https://dosyaniz.mp3');">Oynat</button>
Tarayıcı Desteği

Edge 12+, Firefox 20+, Internet Explorer 9+, Opera 15+, Safari 4+, Chrome

Codec Desteği

Sadece mp3

Eski Çözüm

(eski tarayıcılar için)

function sesOynat(dosyaAdi){
  var mp3Source = '<source src="' + dosyaAdi + '.mp3" type="audio/mpeg">';
  var oggSource = '<source src="' + dosyaAdi + '.ogg" type="audio/ogg">';
  var embedSource = '<embed hidden="true" autostart="true" loop="false" src="' + dosyaAdi +'.mp3">';
  document.getElementById("sound").innerHTML='<audio autoplay="autoplay">' + mp3Source + oggSource + embedSource + '</audio>';
}
<button onclick="sesOynat('bing');">Oynat</button>  
<div id="sound"></div>
Tarayıcı Desteği
  • <audio> Modern tarayıcılar için
  • <embed> Eski tarayıcılar için
Codec Kullanımı
  • Chrome, Safari ve Internet Explorer için MP3
  • Firefox ve Opera için OGG
emmir2
956 gün önce

Enson projem için hazırlamıştım işine yarar umarım

<div id="sipbildirim">Yeni bir sipariş var!!</div>

<audio id="bildirim">
 <source src="ses.mp3" type="audio/mpeg">
</audio>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
$("#sipbildirim").hide();
  if (typeof (EventSource) !== "undefined") {
      var source = new EventSource("kontorl.php");
      source.onmessage = function (event) {
var x = document.getElementById("bildirim");
x.play();
$("#sipbildirim").fadeIn(500);
      };
  } else {
      document.getElementById("result").innerHTML = "Tarayıcınız desteklemiyor";
 }

kontrol.php

header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

include 'db-ayar.php';

$veri_kontrol=$db->prepare("SELECT tarih FROM siparisler_tablon ORDER BY id DESC LIMIT 1");
$veri_kontrol->execute();

if ($veri_kontrol->rowCount() > 0) {
        $veri=$veri_kontrol->fetch(PDO::FETCH_ASSOC);

    date_default_timezone_set('Europe/Istanbul');

    $gecmis = strtotime($veri['tarih']);
    $bugun = time();
    $fark = $bugun - $gecmis;

    if ($fark < 15){
        echo "data: {$fark}\n\n";
    }
    flush();
}