Yeni veri eklendiğin de bildirim sesi çaldırma
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
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
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
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();
}