• 06-02-2024, 02:00:22
    #1
    Php ve js kullanarak verileri kontrol ediyorum. Yeni veri geldiğinde bildirim sesi çalmasını istiyorum. Tüm alanlar tamamlandı tek kalan kısım bildirim sesini çaldırmak.

    Tarayıcıların kullanıcı demeyimi politikasından dolayı domexception play() şeklinde auidio.play() kodu hata vermekte.
    yani tek yapılmasını istediğin bildirim sesinin çalınması diğer kısımları yaptım.
    PM den fiyat teklifi verebilirsiniz.
  • 06-02-2024, 02:03:32
    #2
    kod blogunu at hocam
  • 06-02-2024, 02:07:34
    #3
    Siparis_Sonucsuz.php
    $(document).ready(function(){
    
    $(".liste").load("PageS/Load/Sonucsuz.php");
    
    setInterval(function(){
    
    fetch("PageS/Load/Sonucsuz.php")
    .then(response => {
    if (!response.ok) {
    throw new Error("Network response was not ok");
    }
    return response.text();
    })
    .then(data => {
    if (data === "") {
    console.log("Yok");
    } else {
    if (data.indexOf("SesCal") !== -1) {
    //sesin çalınacağı alan burası
    console.log("ses çalınacak");
    
    }
    $(".liste").html(data);
    }
    })
    .catch(error => {
    console.error("Fetch error:", error);
    });
    }, 10000);
    });
    PageS/Load/Sonucsuz.php:

    if($_SESSION['sonucsuz']!=0){
       if($_SESSION['sonucsuz']<$siparissayi){
       ?>
              <input type="hidden" class="d-none" value="SesCal" />
    <!--bu kısma da eklenebilir işlev-->
      <?php
         }
     }
  • 06-02-2024, 02:20:20
    #4
    if (!response.ok) {  const errorMessage = `Ağ hatası: ${response.status} - ${response.statusText}`;  throw new Error(errorMessage); } 
    
    if (data.indexOf("SesCal") !== -1) {  const audioElement = document.getElementById("ses");  audioElement.src = "ses.mp3";  audioElement.play(); }
    bu şekilde değiştirip dene hocam istersen
  • 06-02-2024, 02:22:42
    #5
    https://developer.mozilla.org/en-US/.../Web_Audio_API burayı inceleyebilirsin umarım sorunun çözülmüştür
  • 06-02-2024, 02:23:00
    #6
    Pos3idon adlı üyeden alıntı: mesajı görüntüle
    if (!response.ok) {  const errorMessage = `Ağ hatası: ${response.status} - ${response.statusText}`;  throw new Error(errorMessage); }
    
    if (data.indexOf("SesCal") !== -1) {  const audioElement = document.getElementById("ses");  audioElement.src = "ses.mp3";  audioElement.play(); }
    bu şekilde değiştirip dene hocam istersen
    Bu şekilde de denedim hocam , sorunu tam olarak şöyle açıklayayım:
    https://developer.chrome.com/blog/autoplay?hl=tr
  • 06-02-2024, 02:29:39
    #7
    basit bir test gerçekleştirdim bende çalıştı ama ben sizin sorunu anlayamadım galiba kusura bakmayın
  • 06-02-2024, 03:25:33
    #8
    Pos3idon adlı üyeden alıntı: mesajı görüntüle
    basit bir test gerçekleştirdim bende çalıştı ama ben sizin sorunu anlayamadım galiba kusura bakmayın
    Kısacası şöyle hocam , Tarayıcılar bu tip seslendirme olayında kullanıcıdan bir etkileşim beklemekte. Eğer kullanıcı bir butona vs tıklarsa sesi çalıyor. Ama benim yapmak istediğim bildirim sesi olduğu için etkileşim olayı sıkıntı doğuruyor , daha önce böyle bir sorun yoktu tarayıcılar 1 yıldır felan bu güncellemeyi yapmış olmalılar.

    Yani butona tıklatıp ses çalma olayı çocuk oyuncağı , js çalışıyor.
    Ama kullanıcı herhangi bir işlem yapmassa sayfada seslendirmeye izin verilememkte.
  • 06-02-2024, 03:33:48
    #9
    mobil tarayıcılar artık buna izin vermiyor audio mute yapmazsanız js kodlarınız çalışmaz.